Schorsch: onScroll Event in Iframe IE

Guten Tag

In meinem Iframe steht folgendes:

<body onScroll="alert('scroll')" onClick="alert('klick')">

onClick funktioniert einwandfrei.
onScroll funktioniert nicht.

Wenn ich den Iframe scrolle, passiert im IE nichts.
Auch keine Fehlermeldung. Im Firefox klappts.

Funktioniert der onScroll Event in Iframes mit IE gar nicht?

Merci für jede Hilfe
Schorsch

  1. hi,

    Funktioniert der onScroll Event in Iframes mit IE gar nicht?

    Ob es ohne Iframe funktioniert, hast du natürlich als erstes überprüft?`

    Mal per Javascript window.onscroll stattdessen eine Funktionsreferenz zugewiesen?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Salut

      Ob es ohne Iframe funktioniert, hast du natürlich als erstes überprüft?

      Guter Hinweis! Merci.

      Es liegt am Doctype.
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

      Wenn der drin ist, gehts nicht.
      Warum bloss?

      Gruss
      Schorsch

      1. hi,

        Es liegt am Doctype.
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

        Wenn der drin ist, gehts nicht.
        Warum bloss?

        Vermutlich, weil der IE dann nicht body scrollbar macht, sondern dem html-Element die eintsprechende Overflow-Formatierung zuweist.
        Analoges Problem wie bspw. beim Abfragen von clientHeight oder scrollTop - im standardkonformen Modus als Eigenschaft von document.documentElement abfragbar, im Quirks Mode oder IE < 6 von document.body.

        Aber wie gesagt, mit dynamischer Zuweisung der Handlerfunktion per Script an window.onscroll gibt es m.W. auch im IE keine Probleme, egal welcher Modus.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Salut

          Aber wie gesagt, mit dynamischer Zuweisung der Handlerfunktion per Script an window.onscroll gibt es m.W. auch im IE keine Probleme, egal welcher Modus.

          Ja, danke. Mit:

          window.onscroll=function(){alert('scroll');};

          im Iframe selber geht das Ganze.

          Gruss
          Schorsch

  2. Hallo, also ich hab mal nachgesehen, der IE scheint onscroll - Eventhandler in der Form nicht zu unterstützen, siehe http://msdn2.microsoft.com/en-us/library/ms536966.aspx

    Auch ist es kein Attribut was dahingehört: http://www.w3.org/TR/html401/present/frames.html#edef-IFRAME

    Versuch doch mal einen Eventhandler via myElement.onscroll(...), myElement.addEventListener(...,...) oder myElement.attachEvent(...,...) anzumelden.

    Es kann auch sein, dass du den Eventhandler für das body - Element des im iframe befindlichen document anmelden musst. Es kann sein, dass das Event nicht über das document hinaus zu deinem eigentlichen document bubbled ...

    Wenn weitere Klärung besteht, einfach nochmal fragen!

    Grüße zippy

    1. Ja, du musst dir erstmal das document des iframe holen, das geht entweder durch myIframe.contentDocument oder durch myIframe.object. Dann holst du dir das window - Objekt der iframe durch myIframe.object.parentWindow oder myIframe.contentDocument.defaultView und kannst dort einen Eventhandler anmelden. Du weißt via attachEvent, onscroll oder addEventListener.

      Ich hoffe ich konnte weiterhelfen, bei mir gings ... (XHTML 1.0 strict, xml prolog, standard compliance mode, IE, Fx)

      Grüße

      1. Salut

        Besten Dank für deinen Vorschlag!

        Gruss
        Schorsch

    2. Salut

      Versuch doch mal einen Eventhandler via myElement.onscroll(...), myElement.addEventListener(...,...) oder myElement.attachEvent(...,...) anzumelden.

      Vielen Dank! Hab im Iframe selber mit

      window.onscroll=function(){alert('scroll');};

      gelöst. Jetzt klappts!

      Gruss
      Schorsch