Я пишу плагин Chrome с контентом script и фоном script, и я пытаюсь заставить их общаться.
В моем содержании script, я делаю
chrome.runtime.sendMessage({greeting: "hello"}, function(response) {
console.log(response.farewell);
});
и на моем фоне script, я делаю
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
}
);
Мой манифест выглядит следующим образом:
{
"manifest_version": 2,
"name": "Tesing Phase",
"version": "1.0",
"background": {
"persistent": false,
"scripts": ["bgscript.js"]
},
"content_scripts": [{
"js": ["contentscript.js"],
"all_frames": true,
"run_at" : "document_start",
"matches": ["*://*/*"]
}],
"web_accessible_resources": ["script.js"]
}
Когда я запускаю свой плагин, я получаю следующую ошибку:
Uncaught TypeError: Object #<Object> has no method 'sendMessage'
Я попробовал logging chrome.runtime
, и не было метода sendMessage
. Я использую версию 25.0 Chromium на Ubuntu. Я также попытался использовать sendRequest
, но он сказал, что он обесценился, и sendMessage
следует использовать.
Может ли кто-нибудь указать мне, чего я здесь не хватает? Существуют ли какие-либо разрешения для этого?