クロムの背景ページを理解しようとしています。サンプルの共食い後に background.js スクリプトを実行することができました。ユーザーがページにアクセスするたびに警告ボックスが表示されます。ただし、同じスクリプトを取得して background.html ファイルに移動すると、ファイルを実行できないようです。
マニフェスト ファイルを (スクリプトではなく) ページに更新すると、拡張機能が正常に読み込まれます。私はまた、ボディまたはヘッドで onload と呼ばれるようになったように、ボディのスクリプトタグに JavaScript を直接入れるか、関数に入れることで遊んでみました。
おそらく、Chrome 拡張機能で background.html ページが何に使用されるかという概念を理解していないのでしょうか?
マニフェスト ファイル:
{
"name": "Testing Extension",
"version": "0.2",
"background": { "pages": ["background.html"] },
"permissions": [
"tabs", "https://mail.google.com/*", "http://*/*, https://*/*"
],
"browser_action": {
"name": "Do some action",
"icons": ["icon.png"]
},
"manifest_version": 2,
"web_accessible_resources": ["injectImage.js", "background.html"]
}
injectImage.js
alert('Got Here');
'use strict';
chrome.browserAction.onClicked.addListener(function (tab) {
chrome.tabs.executeScript(null, {file: "injectImage.js"});
});
chrome.browserAction.setBadgeBackgroundColor({color: [0, 200, 0, 100]});
var i = 0;
window.setInterval(function () {
chrome.browserAction.setBadgeText({text: String(i)});
i++;
}, 10);
background.html
<!DOCTYPE html>
<html>
<head>
<script src="jquery-1.8.0.min.js"></script>
<script src="injectImage.js"></script>
</head>
<body>
</body>
</html>
現在、このコードは右上隅にアイコンを配置する以外には何もしていないようです。