Michael: 'pageX' ist Null oder kein Objekt bei IE8

Hallo zusammen,

ich wollte mir einen mehrzeiligen Tooltip für AreaShapes bauen. Nach einer Recherche scheint mir Javascript die einzige Lösung zu sein.

Ich verwende zur Zeit ein einfaches <div> das ich ein und ausblende.

Allerdings möchte ich den Tooltip jetzt neben der Maus positionieren.

Dazu verwende ich folgendes Script:

document.onmousemove = updateWMTT;  
  
function updateWMTT(e) {  
  if (wmtt != null && wmtt.style.display == 'block') {  
    x = (e.pageX ? e.pageX : window.event.x) + wmtt.offsetParent.scrollLeft - wmtt.offsetParent.offsetLeft;  
    y = (e.pageY ? e.pageY : window.event.y) + wmtt.offsetParent.scrollTop - wmtt.offsetParent.offsetTop;  
    wmtt.style.left = (x + 20) + "px";  
    wmtt.style.top   = (y + 20) + "px";  
  }  
}

Mehr lesen: http://webmatze.de/wirklich-einfache-javascript-tooltips/#ixzz0r149CK2e
Under Creative Commons License: Attribution Share Alike

Beim IE8 bekomme ich allerdings nun den Fehler:
'pageX' ist Null oder kein Objekt

auch andere Varianten die man im Internet findet wie:
x = e.pageX || window.event.x;
führen zu diesem Fehler!

Ist das neu bei IE8? Ich vermute ja dass die Scripte vorher mit IE <= 7 funktioniert haben. Habt ihr eine Idee wie ich das Problem lösen kann?

Vielen Dank im voraus!

  1. Hi there,

    Ist das neu bei IE8? Ich vermute ja dass die Scripte vorher mit IE <= 7 funktioniert haben. Habt ihr eine Idee wie ich das Problem lösen kann?

    nur mal auf die schnelle geraten, das Umgehen mit dem Event-Objekt hängt beim IE auch davon ab, ob er sich im Quirksmodus befindet oder nicht, ändere einfach einmal Deinen Doctype und schau, ob sich dann etwas ändert...

    1. Hi Klawischnigg

      nur mal auf die schnelle geraten, das Umgehen mit dem Event-Objekt hängt beim IE auch davon ab, ob er sich im Quirksmodus befindet oder nicht, ändere einfach einmal Deinen Doctype und schau, ob sich dann etwas ändert...

      ich habe es mal im Quirks und im Standards Mode probiert, aber geht bei mir in beiden Modi nicht.

      Bei mir geht auch das Beispiel auf der Seite
      http://webmatze.de/wirklich-einfache-javascript-tooltips/
      nicht, bzw. nur unter FF und anderen Browsern. Wenn ich dort unten über "Unser Link" fahre wird der Tooltip bei FF neben der Maus und bei IE über dem Link, also an der unveränderten Stelle angezeigt.

      Geht das bei euch?

      1. Hallo Michael,

        Bei mir geht auch das Beispiel auf der Seite
        http://webmatze.de/wirklich-einfache-javascript-tooltips/
        nicht, bzw. nur unter FF und anderen Browsern. Wenn ich dort unten über "Unser Link" fahre wird der Tooltip bei FF neben der Maus und bei IE über dem Link, also an der unveränderten Stelle angezeigt.

        Geht das bei euch?

        die Seite liefert im IE folgende Fehler (einfach mal auf das gelbe Warnschild rechts unten klicken)

        Details zum Fehler auf der Webseite

        Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)
        Zeitstempel: Wed, 16 Jun 2010 13:18:42 UTC

        Meldung: 'google.search.CustomSearchControl' ist Null oder kein Objekt
        Zeile: 165
        Zeichen: 5
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: Unbekannter Fehler.
        Zeile: 153
        Zeichen: 62
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: Unbekannter Fehler.
        Zeile: 153
        Zeichen: 62
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: Unbekannter Fehler.
        Zeile: 153
        Zeichen: 62
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: Unbekannter Fehler.
        Zeile: 153
        Zeichen: 62
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: Unbekannter Fehler.
        Zeile: 153
        Zeichen: 62
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: Unbekannter Fehler.
        Zeile: 153
        Zeichen: 62
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/?fbc_channel=1

        Meldung: Unbekannter Fehler.
        Zeile: 153
        Zeichen: 62
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/?fbc_channel=1

        Meldung: Unbekannter Fehler.
        Zeile: 153
        Zeichen: 62
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/?fbc_channel=1

        Meldung: Unbekannter Fehler.
        Zeile: 153
        Zeichen: 62
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/?fbc_channel=1

        Meldung: Unbekannter Fehler.
        Zeile: 153
        Zeichen: 62
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/?fbc_channel=1

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Meldung: 'pageX' ist Null oder kein Objekt
        Zeile: 210
        Zeichen: 3
        Code: 0
        URI: http://webmatze.de/wirklich-einfache-javascript-tooltips/

        Ich denke, die üben noch.

        Gruß, Jürgen

  2. Hallo Michael,

      
    
    > function updateWMTT(e) {  
    >   if (wmtt != null && wmtt.style.display == 'block') {  
    >     x = (e.pageX ? e.pageX : window.event.x) + wmtt.offsetParent.scrollLeft - wmtt.offsetParent.offsetLeft;  
    >     y = (e.pageY ? e.pageY : window.event.y) + wmtt.offsetParent.scrollTop - wmtt.offsetParent.offsetTop;  
    >     wmtt.style.left = (x + 20) + "px";  
    >     wmtt.style.top   = (y + 20) + "px";  
    >   }  
    > }
    
    

    »

    du fragst e.pageX ab, obwohl e nicht existiert. Ich mache das z.B. so:

    handler = function(e) {  
        e = e || window.event;  
        startposy = e.pageY ? e.pageY : e.clientY + window.document.documentElement.scrollTop;  
    ...  
    }
    

    So kömmen FF und Co. den Parameter e benutzen, während die IE auf window.event zugreifen.

    Gruß, Jürgen

    1. Hallo Michael,

      function updateWMTT(e) {
        if (wmtt != null && wmtt.style.display == 'block') {
          x = (e.pageX ? e.pageX : window.event.x) + wmtt.offsetParent.scrollLeft - wmtt.offsetParent.offsetLeft;
          y = (e.pageY ? e.pageY : window.event.y) + wmtt.offsetParent.scrollTop - wmtt.offsetParent.offsetTop;
          wmtt.style.left = (x + 20) + "px";
          wmtt.style.top   = (y + 20) + "px";
        }
      }

      
      > »  
      >   
      > du fragst e.pageX ab, obwohl e nicht existiert. Ich mache das z.B. so:  
      >   
      > ~~~javascript
      
      handler = function(e) {  
      
      >     e = e || window.event;  
      >     startposy = e.pageY ? e.pageY : e.clientY + window.document.documentElement.scrollTop;  
      > ...  
      > }
      
      

      So kömmen FF und Co. den Parameter e benutzen, während die IE auf window.event zugreifen.

      Gruß, Jürgen

      Hi Jürgen,

      also mit ~~~javascript e = e || window.event;

        
      Dachte das pageX null ist und nicht e! Wieder was dazu gelernt!  
        
      Vielen Dank!
      
  3. Beim IE8 bekomme ich allerdings nun den Fehler:
    'pageX' ist Null oder kein Objekt

    Laut Microsoft kennt das Event-Objekt kein pageX, nur clientX, offsetX und screenX, und auch SELFHTML ist dieser Meinung.

    Wenn du dir um solche Altlasten des Browserkriegs keine Gedanken machen möchtest, schau dir Javascript-Bibliotheken an, beispielsweise JQuery – 19k, die dir viel Ärger abnehmen können.