このページはウェブサイトの動作や描画に影響する可能性のある、Gecko 1.8 と 1.9 の間の変更を概説します。
『Firefox 3 for developers』もあわせてご覧下さい。
イベント
load
イベントリスナの捕捉
Gecko 1.8 では画像に対して捕捉する (capturing) load イベントリスナを設定することはできませんでした。 これは Gecko 1.9 で バグ 234455 によって修正されました。 しかしこれは load イベントに誤って捕捉イベントリスナを設定しているウェブサイトで問題をおこす可能性があります。バグ 335251 での議論を参照してください。 この問題を解決するには、問題があるかもしれないページは捕捉 load イベントリスナを設定すべきではありません。
例えば次のコードは、
window.addEventListener('load', yourFunction, true);
...このように変更すべきです。
window.addEventListener('load', yourFunction, false);
イベントキャプチャの動作に関する説明は DOM Level 2 イベントキャプチャを参照してください。
preventBubble
は削除されました
Gecko 1.8 では上向きのバブルイベントを防ぐために preventBubble
メソッドが存在していました。 Gecko 1.9 ではこのメソッドは削除されてました。代わりに Gecko 1.8 でも動作する標準の stopPropagation() を使うべきです。 バグ 330494 のパッチがこの変更を行いました。バグ 105280も参照してください。
他の古いイベント API のいくつかは、もうサポートされません
window.captureEvents 、 window.releaseEvents 、 window.routeEvent
は、Gecko 1.9 ではもはやサポートされません。( )
DOM
WRONG_DOCUMENT_ERR
外部ドキュメントからのノードは、現在のドキュメントに挿入する前に document.importNode()
を使ってクローンを作る (あるいは
document.adoptNode()
を使って取り込む) べきです。Node.ownerDocument
問題の詳細については
W3C DOM FAQ を参照してください。
Firefox では現在このルールを強制していません。Firefox 3 の開発中には強制していた時期もありましたが、このルールを強制すると多くのサイトが機能しなくなってしまうため取りやめになりました。 将来的な互換性を高めるため、Web 開発者にはこのルールに従ってコードを修正することを推奨します。
レンジ
intersectsNode
は削除されました
Gecko 1.8 では ノードがレンジを交差しているかテストするために intersectsNode
関数が使われました。しかしこの関数の戻り値は分かり難く、意義が乏しいため Gecko 1.9 で削除されました。代わりにより明確で標準の compareBoundaryPoints 関数を使ってください。バグ 358073 のパッチがこの関数を削除しました。
compareBoundaryPoints
を代わりに使う方法は intersectsNode の文書を参照してください。
compareNode
は削除されました
Gecko 1.8 では ノードがレンジをどのように交差しているかテストするために compareNode
関数が使われました。しかしこの関数の戻り値は分かり難く、意義が乏しいため Gecko 1.9 で削除されました。代わりにより明確で標準の compareBoundaryPoints 関数を使ってください。バグ 358073 のパッチがこの関数を削除しました。
compareBoundaryPoints
を代わりに使う方法は compareNode の文書を参照してください。
HTML
<object>
の多数のバグが修正されました
object
と embed
要素は描画に type
属性が必要ではなくなりました。JavaScript 経由による (<embed>
の) src
属性と (<object>
の) data
属性の変更は正しく動くようになりました。サーバから送信されるContent-Type ヘッダは (もしあれば) HTML の仕様どおり <object>
要素の type
属性よりも優先されます (これは embed
には当てはまりません)。