翻訳
manifest.jsonのrun_at
プロパティの説明の翻訳しました。
run_atプロパティ
必須ではありません。js
プロパティのファイルを注入するタイミングを制御します。
設定値は次の三つです
- document_start
- document_end
- document_idle(初期値)
値ごとの注入のタイミング
document_start
css
プロパティのファイルの読込後、DOMが構築されscriptsが実行される前です。
document_end
DOMが構築された直後、画像やフレームなどのサブリソースが読込まれる前です。
document_idle
ブラウザが決定します。document_end
から、window.onloadイベントまでの間の任意のタイミングです。
実際のタイミングはdocumentの複雑さによって変わります。
また、documentの読込みに掛かる時間、documentを読込みに最適化しているかにも左右されます。
document_idleとwindow.onloadイベントに関する注意
document_idle
では、content scripts
がwindow.onload
イベントを受信しない可能性があります。イベント発火後にcontent scripts
を実行しているかもしれません。
一般に、document_idle
では、window.onload
イベントを待つ必要はありません。DOM構築完了後の実行を保証しています。
もし、厳密にwindow.onload
の後にcontent scripts
を実行するには、イベントがすでに発火したかチェックします。document.readyStateプロパティを使います。
使い分け
基本的にdocument_idle
で十分しょう。初期値なので、run_at
プロパティは設定不要です。
巨大な画像を読み込むことなど、サブリソースの読込みに時間が掛かるとわかっている場合は、document_end
を設定します。
サブリソースの読込み前に実行されます。ユーザーの待ち時間が気持ち減ります。
document_start
は、どういうときに使うのでしょうか?
知っている人がいたら教えてください。