content.jsとbackground.js
Chrome拡張についての話です
chrome拡張を作ろうとする時には以下の3つのファイルが必要になります
- manifest.json
- content.js
- background.js
まあ正確にはcontent.jsはなくてもいいこともあります manifest.jsonはchrome拡張についての設定ファイルです
残り二つのjsファイルは何が違うんでしょうか
ちなみに公式にめっちゃわかりやすく書いてあるので時間のある人にはこちらをお勧めします
background.js
background.jsはchrome拡張のイベントハンドラーです backgoundという名の通り、browserのbackgoundで実行されるため ブラウザのどのタブが現在activeかといった情報は持っていません
content.js
webページの読み書きを実行するjsファイルです。 ページ内にロードされて実行されます。background.jsと違ってどのtabで実行されているという情報も持ちます。 DOMの要素を読んだり、変更したりする処理はcontent.jsに記述します
使い方の例
例えばクローム拡張を使ってPCにインストールされたアプリを起動して、取得した値をwebページに表示しようとします 流れとしては
- webページでイベントが発生
- content.jsでイベントをlisten, background.jsへmessageを送信
- backgound.jsがmessageを受信、nativeアプリへmessageを送信
- nativeアプリからのresponseをbackgound.jsが受信、content.jsからメッセージを受信した際に付属していた情報をもとにcontent.jsのいるタブへresponseを送信
- background.jsからのresponseをcontent.jsが受信、responseを元にDOMを変更しwebページに値を表示
となります
文字にするとなかなかわかりずらいな、、