Ich benutze prototype.js für meine Web-App, und ich habe alles auf Chrome, Safari und Firefox laufen. Ich arbeite jetzt an IE8-Kompatibilität.Wann sollte ich JavaScript-Ereignisse in Fenster vs. Dokument vs. document.body beobachten?
Wie ich im IE debuggen, habe ich bemerkt, dass es Javascript-Ereignisse gibt, für die ich zuvor einen Beobachter auf dem Fenster, z.
Event.observe(window, eventType, function() {...});
(wo eventType
könnte sein "dom:loaded"
, "keypress"
, etc.) und es funktioniert gut in Chrome/Safari/Firefox. Im IE wird der Beobachter jedoch nie ausgelöst.
In zumindest einigen Fällen konnte ich dies auf IE arbeiten lassen, indem ich den Beobachter auf etwas anderes als window
, z. document
(im Fall von "dom:loaded"
) oder document.body
(im Fall von "keypress"
). Dies ist jedoch alles Trial-and-Error.
Gibt es eine systematischere Methode, um festzustellen, wo diese Beobachter platziert werden sollen, sodass die Ergebnisse browserübergreifend kompatibel sind?
Danke!
Die Docs erklären das nicht besonders gut. –
Dies scheint ein guter Ort, um zu schauen, aber soweit ich das sagen kann, sind die MSDN nicht umfassend. Zum Beispiel kann man ein "onresize" -Ereignis auf dem "Fenster" registrieren, aber ich sehe es dort tatsächlich nicht aufgelistet. – brahn
Das liegt daran, dass 'onresize' von' window.prototype' im IE offengelegt wird. Es ist in dem Dokument. – Alsciende