window.event => Kompatibilitäts-Probleme mit FF

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • window.event => Kompatibilitäts-Probleme mit FF

    Hi,
    Ich hoffe, dass sich vielleicht schon mal jm. zuvor mit meinem Problem beschäftigt hat und mir helfen kann.
    Folgendes Script positioniert ein DIV-Layer mit Text relativ zur Mausbebewegung solange man über ein Bild "baseimage.jpg" fährt. Verlässt man das Bild wird das Layer ausgeblendet.

    Im IE funktioniert das Script auch sehr gut. Leider wird in Firefox folgender Fehler angezeigt =>

    "window.event" has no properties

    Das Problem muss also beim Event-Handler liegen. Hat jm eine Idee wie man das Script anpassen müsste, damit auch Firefox und möglichst auch Opera das Script akzeptieren?

    Ich wäre euch sehr dankbar für Eure Hilfe!

    Viele Grüße
    Sebi


    Code:
    <html>
    <head>
    
    <style type="text/css">
    #myLayer {
    	visibility:hidden;
    	position:absolute;
    }
    </style>
    
    <SCRIPT LANGUAGE="JavaScript">
    
    function handler(e){
    
    Xx = window.event.offsetX;
    Yy = window.event.offsetY;
    
    document.getElementById("myLayer").style.left = Xx + document.getElementById("map").offsetLeft;
    document.getElementById("myLayer").style.top = Yy + document.getElementById("map").offsetTop;
    
    }
    
    function an() {
     document.getElementById("myLayer").style.visibility='visible';
    }
    function aus() {
     document.getElementById("myLayer").style.visibility='hidden';
    }
    </script>
    
    
    </head><body>
    <br><br><br><br>
    
    
    <a href="datei.htm" onMouseOver="an()" onMouseOut="aus()">
    <img src="baseimage.jpg" onMouseMove="handler(this)" id="map">
    </a>
    
    <div id="myLayer">Text über dem Bild</div>
    
    </body>
    </html>

  • #2
    schau mal bitte im selfhtml, dann wirst du ganz schnell erkennen, warum du eine fehlermeldung erhälts. die lösung findest du dort übrigens auch.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Hi,
      Ja ich sehe, dass OffsetX und OffsetY nur IE-spezifisch sind. Gibt es denn für FF eine Alternative, die funktionieren könnte?

      Wenn ich testweise "PageX" statt "OffsetX" nutze so bleiben in FF die Fehler jedoch die gleichen und die Ebene wird nicht verschoben...

      Ich bin leider auch kein js-Pro ;-(

      Kommentar


      • #4
        window.event =&gt; Kompatibilitäts-Probleme mit FF

        Hi,
        Ich hoffe, dass sich vielleicht schon mal jm. zuvor mit meinem Problem beschäftigt hat und mir helfen kann.
        Folgendes Script positioniert ein DIV-Layer mit Text relativ zur Mausbebewegung solange man über ein Bild "baseimage.jpg" fährt. Verlässt man das Bild wird das Layer ausgeblendet.

        Im IE funktioniert das Script auch sehr gut. Leider wird in Firefox folgender Fehler angezeigt =>

        "window.event" has no properties

        Ich weiß, dass window.event.OffsetX und OffsetY nur IE-spezifisch sind.
        Wenn ich testweise "PageX" statt "OffsetX" nutze so bleiben in FF die Fehler jedoch die gleichen und die Ebene wird nicht verschoben...

        Das Problem muss also beim Event-Handler liegen. Hat jm eine Idee wie man das Script anpassen müsste, damit auch Firefox und möglichst auch Opera das Script akzeptieren?

        Ich wäre euch sehr dankbar für Eure Hilfe!
        Ich bin leider auch kein js-Pro ;-(

        Viele Grüße
        Sebi


        Code:
        <html>
        <head>
        
        <style type="text/css">
        #myLayer {
        	visibility:hidden;
        	position:absolute;
        }
        </style>
        
        <SCRIPT LANGUAGE="JavaScript">
        
        function handler(e){
        
        Xx = window.event.offsetX;
        Yy = window.event.offsetY;
        
        document.getElementById("myLayer").style.left = Xx + document.getElementById("map").offsetLeft;
        document.getElementById("myLayer").style.top = Yy + document.getElementById("map").offsetTop;
        
        }
        
        function an() {
         document.getElementById("myLayer").style.visibility='visible';
        }
        function aus() {
         document.getElementById("myLayer").style.visibility='hidden';
        }
        </script>
        
        
        </head><body>
        <br><br><br><br>
        
        
        <a href="datei.htm" onMouseOver="an()" onMouseOut="aus()">
        <img src="baseimage.jpg" onMouseMove="handler(this)" id="map">
        </a>
        
        <div id="myLayer">Text über dem Bild</div>
        
        </body>
        </html>

        p.s.: Zur Info: Hintergrund des Scriptes ist eine deratige Funktion, die ich in meinem Script jedoch cross-browser-kompatibel realisieren will:

        Zu einem ähnlichen Script in Action

        Kommentar


        • #5
          sorry, mir fällt gerade auf, dass ich ja hier in das falsche Forum gepostet habe.
          Bitte nicht böse sein.. ^^ (und evtl diesen Thread löschen)

          HTML & JS-Forum

          Kommentar


          • #6
            Re: window.event =&gt; Kompatibilitäts-Probleme mit FF

            take a look
            http://www.mangacarta.de/ghostgambler/
            ich weiß nicht mehr, was ich da damals gemacht hab, aber ich weiß das sowohl unter IE als auch unter Firefox die Boxen oben bei News etc. nach der Mausposition erscheinen, die Events müssten irgendwo kurz über dem Body-Tag sein, vielleicht hilft dir was davon *zuck*

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              jo danke, ich mal dran gebastelt und einen Großteil des Scripts übernommen. Funktioniert jetzt astrein mit allen Browsern - ohne, dass ich viel dran ändern musste...
              Zuletzt geändert von 123456; 18.07.2005, 00:51.

              Kommentar


              • #8
                @123456, mach bitte dein Banner im Signatur kleiner, sonst lassen wir es entfernen!

                Kommentar

                Lädt...
                X