Help us understand the problem. What is going on with this article?

Google Chrome拡張でContent Scriptsを注入するタイミングを制御

More than 5 years have passed since last update.

翻訳

manifest.jsonrun_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 scriptswindow.onloadイベントを受信しない可能性があります。イベント発火後にcontent scriptsを実行しているかもしれません。

一般に、document_idleでは、window.onloadイベントを待つ必要はありません。DOM構築完了後の実行を保証しています。

もし、厳密にwindow.onloadの後にcontent scriptsを実行するには、イベントがすでに発火したかチェックします。document.readyStateプロパティを使います。

使い分け

基本的にdocument_idleで十分しょう。初期値なので、run_atプロパティは設定不要です。

巨大な画像を読み込むことなど、サブリソースの読込みに時間が掛かるとわかっている場合は、document_endを設定します。
サブリソースの読込み前に実行されます。ユーザーの待ち時間が気持ち減ります。

document_startは、どういうときに使うのでしょうか?
知っている人がいたら教えてください。

ledsun
編集リクエスト、コメント大歓迎です。
luxiar
Ruby on Rails専門のWebアプリケーション開発に特化した町田の受託開発企業です
http://www.luxiar.com/index.html
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした