Seitenkompatibilität für Firefox 3
Diese Seite versucht einen Überblick über die Änderungen zwischen Gecko 1.8 und Gecko 1.9 zu geben, die möglicherweise das Verhalten oder die Darstellung von Websites beeinflussen könnten.
Siehe auch Firefox 3 für Entwickler.
Events
Erfassen von Load-Event-Listenern
In Gecko 1.8 war es nicht möglich, erfassende Load-Event-Listener für Bilder zu setzen. In Gecko 1.9 wurde dies durch Firefox-Bug 234455 behoben. Dies kann jedoch Probleme auf Websites verursachen, die ihre Event-Listener fälschlicherweise so einstellen, dass sie das Load-Event erfassen. Siehe die Diskussion in Webkit-Bug 335251. Um dieses Problem zu beheben, sollte die betroffene Seite keinen erfassenden Load-Event-Listener setzen.
Zum Beispiel sollte dies:
window.addEventListener('load', yourFunction, true);
in dies geändert werden:
window.addEventListener('load', yourFunction, false);
Für eine Erklärung, wie Event-Capture funktioniert, siehe DOM Level 2 Event capture.
preventBubble
wurde entfernt
In Gecko 1.8 existierte die Methode preventBubble
auf Events, um zu verhindern, dass Events nach oben gebubbelt werden. In Gecko 1.9 wurde diese Methode entfernt. Stattdessen sollten Sie die Standardmethode stopPropagation() verwenden, die auch in Gecko 1.8 gut funktioniert. Der Patch in Firefox-Bug 330494 hat dies ermöglicht. Siehe auch Webkit-Bug 105280.
Einige andere alte Event-APIs werden nicht mehr unterstützt
window.captureEvents
, window.releaseEvents
und window.routeEvent
gelten seit Gecko 1.9 als veraltet.
DOM
WRONG_DOCUMENT_ERR
Knoten aus externen Dokumenten sollten geklont werden, indem document.importNode()
(oder adaptiert, indem document.adoptNode()
) verwendet wird, bevor sie in das aktuelle Dokument eingefügt werden können. Weitere Informationen zu den Problemen mit Node.ownerDocument
finden Sie in den W3C DOM FAQ.
Firefox erzwingt diese Regel derzeit nicht (es gab eine Zeit während der Entwicklung von Firefox 3, in der dies der Fall war, aber zu viele Seiten brechen, wenn diese Regel durchgesetzt wird). Wir ermutigen Webentwickler, ihren Code zu korrigieren, um die Regel für eine verbesserte zukünftige Kompatibilität einzuhalten.
Ranges
intersectsNode
wurde entfernt
In Gecko 1.8 konnte die Funktion intersectsNode
verwendet werden, um zu testen, ob ein Knoten eine Schnittmenge mit einem Bereich aufweist. Allerdings waren die Rückgabewerte dieser Funktion verwirrend und selten nützlich und wurde daher in Gecko 1.9 entfernt. Stattdessen verwenden Sie die genauere und standardisierte Funktion compareBoundaryPoints. Der Patch in Firefox-Bug 358073 hat diese Funktion entfernt.
Siehe die Dokumentation zu intersectsNode für die Verwendung von compareBoundaryPoints
.
compareNode
wurde entfernt
In Gecko 1.8 konnte die Funktion compareNode
verwendet werden, um zu testen, wie ein Knoten eine Schnittmenge mit einem Bereich aufwies. Die Rückgabewerte dieser Funktion waren jedoch verwirrend und selten nützlich und wurde daher in Gecko 1.9 entfernt. Stattdessen verwenden Sie die genauere und standardisierte Funktion compareBoundaryPoints. Der Patch in Firefox-Bug 358073 hat diese Funktion entfernt.
Siehe die Dokumentation zu compareNode für die Verwendung von compareBoundaryPoints
.
HTML
Viele Bugs in <object>
wurden behoben
object
und embed
Elemente benötigen nicht mehr zwingend ein type
Attribut, um dargestellt zu werden. Das Ändern des src
Attributs (von <embed>
) oder des data
Attributs (von <object>
) über JavaScript funktioniert jetzt korrekt. Der vom Server gesendete Content-Type-Header (falls vorhanden) hat jetzt Vorrang vor dem type
Attribut eines <object>
Elements gemäß der HTML-Spezifikation (dies ist bei embed
nicht der Fall).