mam następujące pliki (gist dla łatwego dostępu)chrome.runtime.sendMessage w skrypcie zawartości nie wysyła wiadomość
manifest.json
{
"name": "testmessage",
"version": "0.1",
"manifest_version": 2,
"externally_connectable": {
"matches": ["*://www.google.com/*"]
},
"background": {
"scripts": ["background.js"],
"persistent": true
},
"content_scripts": [
{
"matches": ["*://www.google.com/*"],
"js": ["content.js"]
}
]
}
content.js
chrome.runtime.sendMessage(
"eldkfaboijfanbdjdkohlfpoffdiehnb", // PUT YOUR EXTENSION ID HERE
"foo",
function (response) {
console.log(response);
}
);
console.log("this is content.js reporting for duty");
background.js
chrome.runtime.onMessageExternal.addListener(
function(request, sender, sendResponse) {
console.log("background.js got a message")
console.log(request);
console.log(sender);
sendResponse("bar");
}
);
console.log("this is background.js reporting for duty");
widzę zarówno ... „zgłoszenie do służby” wiadomości w poszczególnych konsolach. Ale background.js
nie otrzymuje wiadomości po załadowaniu http://www.google.com. Linia 5 w content.js
drukuje undefined
w konsoli witryny google.com.
Po uruchomieniu chrome.runtime.sendMessage("eldkfaboijfanbdjdkohlfpoffdiehnb", "foo");
w konsoli google.com pojawia się w konsoli background.js.
Co robię źle?