gpt4 book ai didi

google-chrome-extension - Chrome 扩展从内容脚本到后台 html 的 sendMessage 错误

转载 作者:行者123 更新时间:2023-12-03 22:12:24 26 4
gpt4 key购买 nike

我刚刚将我的 chrome 扩展程序更新为 json 版本 2,并试图让我的扩展程序再次工作。问题是 sendRequest 在此过程中折旧了。所以我从 https://developer.chrome.com/extensions/messaging.html 复制代码进入我的脚本并将其修改为我自己的变量名称,但它不起作用。

然后我返回并输入原始代码,它仍然不起作用。我已经阅读了多个相似的问题[希望这不会被重复关闭,因为它们都与我的情况不同]。

manifest.json:

{
"background": {
"page": "background.html"
},
... ... ...
"content_scripts": [ {
"css": [ "style.css" ],
"js": [ "jq.js", "script.js" ],
"matches": [ "http://*.craigslist.org/*/*.htm*" ]
} ],
... ... ...
"permissions": [ "tabs", "http://*.craigslist.org/*/*.htm*" ],
"manifest_version": 2,
"update_url": "http://clients2.google.com/service/update2/crx",
"version": "3.0"
}

背景.html:
<html>
<script type='text/javascript'>
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"});
});
});
</script>
</html>

script.js:
chrome.runtime.sendMessage({greeting: "hello"}, function(response) {
console.log(response.farewell);
});

现在我运行一个页面 [on craigslist],然后转到控制台,这是错误:
Port error: Could not establish connection. Receiving end does not exist.
TypeError: Cannot read property 'farewell' of undefined
at chrome-extension://dhmjefbokfkjpdbigkadjpgjeflchgea/script.js:9:23

我在 Ubuntu 12.10 64 位(谷歌浏览器:27.0.1453.15(官方版本 191758)测试版)上使用 Chrome Beta

最佳答案

您正在从您的背景和内容脚本发送消息,但根本没有尝试接收它们。尝试在其中一个或两个地方收听消息。此外,内联代码是 against the CSP所以把它全部移到一个外部文件中。

例如:

manifest.json

"background": {
"scripts": ["background.js"]
},

background.js
chrome.runtime.onMessage.addListener(function(message,sender,sendResponse){
sendResponse({farewell:"goodbye"});
});

script.js
chrome.runtime.sendMessage({greeting: "hello"}, function(response) {
console.log(response.farewell);
});

另外, chrome.tabs.getSelected()也已弃用,因此请使用 chrome.tabs.query() 反而。

关于google-chrome-extension - Chrome 扩展从内容脚本到后台 html 的 sendMessage 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15888177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com