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
Capturing-Load-Event-Listener
In Gecko 1.8 war es nicht möglich, Capturing-Load-Event-Listener auf Bildern zu setzen. In Gecko 1.9 wurde dies durch Firefox-Bug 234455 behoben. Dies kann jedoch auf Websites, die ihre Capture-Load-Event-Listener fälschlicherweise gesetzt haben, zu Problemen führen. Siehe die Diskussion in WebKit-Bug 335251. Um dieses Problem zu lösen, sollte die betreffende Seite den Capturing-Load-Event-Listener nicht setzen.
Zum Beispiel sollte dies:
window.addEventListener('load', yourFunction, true);
geändert werden in:
window.addEventListener('load', yourFunction, false);
Für eine Erklärung, wie Ereignis-Capture funktioniert, siehe DOM Level 2 Event capture.
preventBubble
wurde entfernt
In Gecko 1.8 existierte die Methode preventBubble
bei Ereignissen, um zu verhindern, dass Ereignisse nach oben weitergegeben werden. 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 machte dies möglich. Siehe auch WebKit-Bug 105280.
Einige andere alte Ereignis-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 ins aktuelle Dokument eingefügt werden können. Für mehr Informationen zu den Node.ownerDocument
Themen, siehe die W3C DOM FAQ.
Firefox erzwingt derzeit diese Regel nicht (sie wurde während der Entwicklung von Firefox 3 eine Zeitlang durchgesetzt, aber zu viele Seiten brachen, wenn diese Regel angewendet wurde). Wir ermutigen Webentwickler, ihren Code zu korrigieren, um diese Regel für eine verbesserte künftige Kompatibilität zu beachten.
Bereiche
intersectsNode
wurde entfernt
In Gecko 1.8 konnte die Funktion intersectsNode
verwendet werden, um zu testen, ob ein Knoten einen Bereich schnitt. Da die Rückgabewerte dieser Funktion jedoch verwirrend und selten nützlich waren, wurde sie in Gecko 1.9 entfernt. Stattdessen sollten Sie die präzisere und standardisierte Funktion compareBoundaryPoints verwenden. Der Patch in Firefox-Bug 358073 hat diese Funktion entfernt.
Siehe die Dokumentation zu intersectsNode, um zu erfahren, wie Sie compareBoundaryPoints
stattdessen verwenden.
compareNode
wurde entfernt
In Gecko 1.8 konnte die Funktion compareNode
verwendet werden, um zu testen, wie ein Knoten einen Bereich schnitt. Da die Rückgabewerte dieser Funktion jedoch verwirrend und selten nützlich waren, wurde sie in Gecko 1.9 entfernt. Stattdessen sollten Sie die präzisere und standardisierte Funktion compareBoundaryPoints verwenden. Der Patch in Firefox-Bug 358073 hat diese Funktion entfernt.
Siehe die Dokumentation zu compareNode, um zu erfahren, wie Sie compareBoundaryPoints
stattdessen verwenden.
HTML
Viele Fehler im <object>
wurden behoben
object
- und embed
-Elemente benötigen kein 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 jetzt Vorrang vor dem type
-Attribut eines <object>
-Elements gemäß der HTML-Spezifikation (dies gilt nicht für embed
).