一部の Firefox 拡張機能では、できるだけ早くページ コンテンツに手を加えて変更することが理にかなっていますが、他の拡張機能ではできるだけ遅く (たとえば、他の拡張機能が変更を行った場合) 取得することが理にかなっています。「最初」または「最後」になりたい拡張機能が常に存在することは明らかですが、これをカバーする資料をオンラインで見つけるのに苦労しています. addEventListener("load", ...) の場合、イベント ハンドラーが呼び出される順序が定義されていないことがわかります。addEventListener を使用する方法がない場合、Firefox 拡張機能でコンテンツの処理の早い/遅いに影響を与える他のオプションは何ですか?
質問する
82 次
1 に答える
1
イベントリスナーがトリガーされる順序は実際には定義されていないため、特定の順序に依存することはできません。拡張に関する限り、最善の策は、他の拡張が既に行われているかどうかを気にしないような方法でコードを作成することです。それ以外に、添付するイベントを選択できます。
chrome-document-global-created
/content-document-global-created
通知は、ウィンドウが作成されたときのできるだけ早い時点で実行されますが、ウィンドウの内容はまだ利用できません。このオプションは明らかに、コードがウィンドウのオーバーレイによって読み込まれる場合に使用できるものではありません。オーバーレイの読み込みは後で行われます。DOMContentLoaded
ウィンドウの DOM にアクセスできるようになると、イベントが発生します。load
すべての依存要素が読み込まれると、イベントは後で発生します。- さらに後で実行したい場合は、イベント ハンドラーを呼び出すオプションがあり
setTimeout(..., 0)
ます。load
タイムアウトは、すべてのload
イベント ハンドラーの後に実行されることが保証されています。
于 2012-04-20T12:00:14.013 に答える