Chrome拡張機能について学び、HelloWorldアプリをいくつか作成しています。ここではコンテンツスクリプトに取り組んでいます。
まず、私のアプリは非常にシンプルで、コンテンツスクリプトをロードするマニフェストにすぎません。
これはマニフェストです
{
"name": "turn all th into TH",
"version": "1.0",
"permissions": [
"http://*/*"
],
"manifest_version": 2,
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["contentScriptFirstApp.js"]
}
]
}
そしてcontentscriptはたった1行です
alert('hello');
これを実行すると、ページが読み込まれるたびにアラートボックスが表示されます。
ただし、奇妙なことに、コードは実行されていますが、開発ツールでContentScriptが見つかりません。
マニフェストをわずかに調整し、matchesパラメータを変更して、許可する代わりに、以下のようにhttpファイルとのみ一致するようにした場合にのみ、開発者ツールでコンテンツスクリプトを確認できます。
{
"name": "turn all th into TH",
"version": "1.0",
"permissions": [
"http://*/*"
],
"manifest_version": 2,
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["contentScriptFirstApp.js"]
}
]
}
なぜこれなのか興味があります。どちらの場合も、コードは実行されてアラートボックスが表示されますが、コンテンツスクリプトページの「matches」パラメータがhttpページとしてのみ設定されている場合にのみ、開発者ツールに表示されるのはなぜですか。