onScroll Event in Iframe IE
Schorsch
- javascript
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
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
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
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
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
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
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
Salut
Besten Dank für deinen Vorschlag!
Gruss
Schorsch
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