Website-Kompatibilitä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.

Ereignisse

Load-Event-Listener im Capture-Modus

In Gecko 1.8 war es nicht möglich, Load-Event-Listener im Capture-Modus 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 gesetzt haben, dass sie das Load-Event im Capture-Modus erfassen. Siehe die Diskussion in WebKit-Bug 335251. Um dieses Problem zu beheben, sollte die betroffene Seite keinen Load-Event-Listener im Capture-Modus setzen.

Zum Beispiel sollte dies:

js
window.addEventListener("load", yourFunction, true);

in dies geändert werden:

js
window.addEventListener("load", yourFunction, false);

Eine Erklärung, wie Event-Capturing funktioniert, finden Sie unter addEventListener.

preventBubble wurde entfernt

In Gecko 1.8 existierte die Methode preventBubble auf Events, um das Aufwärtsblubbern von Events zu verhindern. In Gecko 1.9 wurde diese Methode entfernt. Stattdessen sollten Sie die Standardmethode stopPropagation() verwenden, die auch in Gecko 1.8 einwandfrei funktioniert. Der Patch in Firefox-Bug 330494 hat dies umgesetzt. Siehe auch WebKit-Bug 105280.

Einige andere alte Event-APIs werden nicht mehr unterstützt

window.captureEvents, window.releaseEvents und window.routeEvent werden seit Gecko 1.9 als veraltet angesehen.

DOM

WRONG_DOCUMENT_ERR

Knoten aus externen Dokumenten sollten geklont werden, indem document.importNode() (oder übernommen durch document.adoptNode()) verwendet wird, bevor sie in das aktuelle Dokument eingefügt werden. Weitere Informationen zu den Problemen mit Node.ownerDocument finden Sie in den W3C DOM FAQ.

Firefox erzwingt derzeit diese Regel nicht (es wurde eine Zeit lang während der Entwicklung von Firefox 3 erzwungen, aber zu viele Seiten brechen, wenn diese Regel durchgesetzt wird). Wir ermutigen Webentwickler, ihren Code zu korrigieren, um dieser Regel für eine verbesserte zukünftige Kompatibilität zu folgen.

Bereiche

intersectsNode wurde entfernt

In Gecko 1.8 konnte die Funktion intersectsNode verwendet werden, um zu testen, ob ein Knoten einen Bereich schnitt. Allerdings waren die Rückgabewerte dieser Funktion verwirrend und selten nützlich, weshalb sie in Gecko 1.9 entfernt wurde. Stattdessen sollte die genauere und standardisierte Funktion compareBoundaryPoints verwendet werden. Der Patch in Firefox-Bug 358073 hat diese Funktion entfernt.

Sehen Sie sich die Dokumentation für intersectsNode an, um zu erfahren, wie compareBoundaryPoints stattdessen verwendet wird.

compareNode wurde entfernt

In Gecko 1.8 konnte die Funktion compareNode verwendet werden, um zu testen, wie ein Knoten einen Bereich schnitt. Allerdings waren die Rückgabewerte dieser Funktion verwirrend und selten nützlich, weshalb sie in Gecko 1.9 entfernt wurde. Stattdessen sollte die genauere und standardisierte Funktion compareBoundaryPoints verwendet werden. Der Patch in Firefox-Bug 358073 hat diese Funktion entfernt.

Sehen Sie sich die Dokumentation für compareNode an, um zu erfahren, wie compareBoundaryPoints stattdessen verwendet wird.

HTML

Viele Fehler im <object> wurden behoben

object und embed Elemente benötigen keinen type-Attribut mehr, um gerendert 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 nun Vorrang vor dem type-Attribut eines <object>-Elements gemäß der HTML-Spezifikation (dies gilt nicht für embed).