Kompatibilität der Website 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 Websites in ihrem Verhalten oder ihrer Darstellung beeinflussen könnten.

Siehe auch Firefox 3 für Entwickler.

Ereignisse

Erfassen von Load-Event-Listenern

In Gecko 1.8 war es nicht möglich, Load-Event-Listener beim Erfassen auf 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 eingestellt haben, dass sie das Load-Event erfassen. Siehe die Diskussion im WebKit-Bug 335251. Um dieses Problem zu beheben, sollte die betroffene Seite ihren Load-Event-Listener nicht im Erfassungsmodus setzen.

Zum Beispiel sollte dies:

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

in dies geändert werden:

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

Für eine Erklärung, wie Eventerfassung funktioniert, siehe addEventListener.

preventBubble wurde entfernt

In Gecko 1.8 existierte die Methode preventBubble bei Ereignissen, um zu verhindern, dass Ereignisse nach oben blubbern. In Gecko 1.9 wurde diese Methode entfernt. Stattdessen sollten Sie den Standard stopPropagation() verwenden, der auch in Gecko 1.8 gut funktioniert. Der Patch im Firefox-Bug 330494 hat dies bewirkt. 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 mit document.importNode() geklont (oder mit document.adoptNode() übernommen) werden, bevor sie in das aktuelle Dokument eingefügt werden. Für mehr Informationen zu den Node.ownerDocument Problemen, siehe die W3C-DOM-FAQ.

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

Bereiche

intersectsNode wurde entfernt

In Gecko 1.8 konnte die Funktion intersectsNode verwendet werden, um zu testen, ob ein Knoten einen Bereich schneidet. Die Rückgabewerte dieser Funktion waren jedoch verwirrend und selten nützlich, weshalb sie in Gecko 1.9 entfernt wurde. Stattdessen verwenden Sie die genauere und standardmäßige Funktion compareBoundaryPoints. Der Patch im Firefox-Bug 358073 hat diese Funktion entfernt.

Siehe die Dokumentation für 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 einen Bereich schneidet. Die Rückgabewerte dieser Funktion waren jedoch verwirrend und selten nützlich, weshalb sie in Gecko 1.9 entfernt wurde. Stattdessen verwenden Sie die genauere und standardmäßige Funktion compareBoundaryPoints. Der Patch im Firefox-Bug 358073 hat diese Funktion entfernt.

Siehe die Dokumentation für compareNode für die Verwendung von compareBoundaryPoints.

HTML

Viele Fehler im <object> wurden behoben

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