Visit Mozilla.org

Gecko 1.9 Changes affecting websites

出典: MDC

このページはウェブサイトの動作や描画に影響する可能性のある、Gecko 1.8 と 1.9 の間の変更を概説します。

開発者のための Firefox 3 も参照してください。

目次

[編集] イベント

[編集] load イベントリスナの捕捉

Gecko 1.8 では画像に対して捕捉する (capturing) load イベントリスナを設定することはできませんでした。 これは Gecko 1.9 で bug 234455 によって修正されました。 しかしこれは load イベントに誤って捕捉イベントリスナを設定しているウェブサイトで問題をおこす可能性があります。bug 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() を使うべきです。 bug 330494 のパッチがこの変更を行いました。bug 105280も参照してください。

[編集] 他の古いイベント API のいくつかは、もうサポートされません

window.captureEvents, window.releaseEvents, および window.routeEvent は、Gecko 1.9 ではもはやサポートされません。(廃止)

[編集] DOM

[編集] WRONG_DOCUMENT_ERR

外部ドキュメントからのノードは、現在のドキュメントに挿入する前に importNode() を使ってクローン (あるいは adoptNode() を使って取り込み) するべきです。ownerDocument 問題の詳細については W3C DOM FAQ を参照してください。

Firefox では現在このルールを強制していません。Firefox 3 の開発中には強制していた時期もありましたが、このルールを強制すると多くのサイトが機能しなくなってしまうため取りやめになりました。将来的な互換性を高めるため、Web 開発者にはこのルールに従ってコードを修正することを推奨します。


[編集] レンジ

[編集] intersectsNode は削除されました

Gecko 1.8 では ノードがレンジを交差しているかテストするために intersectsNode 関数が使われました。しかしこの関数の戻り値は分かり難く、意義が乏しいため Gecko 1.9 で削除されました。代わりにより明確で標準の compareBoundaryPoints 関数を使ってください。bug 358073 のパッチがこの関数を削除しました。

compareBoundaryPoints を代わりに使う方法は intersectsNode の文書を参照してください。

[編集] compareNode は削除されました

Gecko 1.8 では ノードがレンジをどのように交差しているかテストするために compareNode 関数が使われました。しかしこの関数の戻り値は分かり難く、意義が乏しいため Gecko 1.9 で削除されました。代わりにより明確で標準の compareBoundaryPoints 関数を使ってください。bug 358073 のパッチがこの関数を削除しました。

compareBoundaryPoints を代わりに使う方法は compareNode の文書を参照してください。

[編集] HTML

[編集] <object> におけるたくさんのバグが修正されました

objectembed 要素は描画に type 属性が必要ではなくなりました。JavaScript 経由による (<embed> の) src 属性と (<object> の) data 属性の変更は正しく動くようになりました。サーバから送信されるContent-Type ヘッダは (もしあれば) HTML の仕様どおり <object> 要素の type 属性よりも優先されます (これは embed には当てはまりません)。