我一直在尝试为Chrome扩展程序传递消息,但是console.log(响应)给了我undefined。我已经查看了消息传递和stackoverflow的文档,但在我的情况下它将无法正常工作。我不知道为什么。
myscript.js:
chrome.extension.sendRequest({greeting: "hello"}, function(response) {
console.log(response);
return true;
});
background.js:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
sendResponse({farewell: "goodbye"});
return true;
});
的manifest.json
{
"manifest_version": 2,
"name": "nameasf",
"description": "asfasaf",
"version": "1.0",
"permissions": [
"tabs",
"http://somedomain.com/"
],
"content_scripts": [
{
"matches": ["http://somedomain.com/*"],
"css": ["mystyles.css"],
"js": ["jquery.js", "myscript.js"],
"all_frames": true
}
],
"background": {
"scripts": ["background.js"]
},
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
}
}
答案 0 :(得分:0)
您使用的是过时的 chrome.extension.sendRequest
请改用 chrome.runtime.sendMessage
。
(注意:您已使用新的 chrome.runtime.onMessage
,因此您无需在侦听器方面进行任何更改。)
几个旁注:
tabs
权限)。