永続的なバックグラウンド スクリプト (background.js) に次のコードがあります。
chrome.runtime.onConnect.addListener(function(port) {
console.assert(port.name == "knockknock");
port.onMessage.addListener(function(msg) {
if (msg.joke == "Knock knock")
port.postMessage({question: "Who's there?"});
else if (msg.answer == "Madame")
port.postMessage({question: "Madame who?"});
else if (msg.answer == "Madame... Bovary")
port.postMessage({question: "I don't get it."});
});
});
Chromeで拡張機能をロード/リロードすると、エラーメッセージが表示されます
Uncaught TypeError: Cannot call method 'addListener' of undefined
コードは Chrome 拡張機能のドキュメント サイトから引用したものであるため、おそらく動作しているコードであり、いくつかの設定が欠けているだけです。
マニフェストは次のようになります。
{
"manifest_version": 2,
"name": "TestMessaging",
"version": "1",
"background" : {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_icon" : "icon.png"
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": [
"contentscript.js"
]
}
],
"permissions" : [
"tabs",
"https://*/*",
"http://*/*"
]
}
ご協力いただきありがとうございます!