gpt4 book ai didi

javascript - Chrome扩展端口错误: Could not establish connection.接收端不存在

转载 作者:行者123 更新时间:2023-11-29 10:18:07 25 4
gpt4 key购买 nike

尝试从弹出窗口向我的 contentscript 发送消息时出现此错误。我想要做的是从我的 content.js 获取当前选项卡的文档并将其发送到弹出窗口。我该如何解决这个错误?

{
"manifest_version": 2,
"name": "Chrome Snapshot",
"description": "Save images and screenshots of sites to Dropbox.",
"version": "1.0",
"permissions": [
"<all_urls>",
"tabs"
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "html/popup.html"
},
"background": {
"scripts": [
"vendor/dropbox.min.js",
"vendor/jquery-2.0.2.min.js"
],
"persistant": false
},
"content_scripts" : [{
"all_frames": true,
"matches" : ["*://*/*"],
"js" : ["js/content.js"],
"run_at": "document_end"
}]
}

js/popup.js

chrome.runtime.sendMessage({message: 'hi'}, function(response) {
console.log(response);
});

js/content.js

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
console.log('message', message);
sendResponse({farewell: 'goodbye'});
});

编辑 #1 仍然出现相同的错误 Port error: Could not establish connection.接收端不存在。杂项绑定(bind):235
chromeHidden.Port.dispatchOnDisconnect

修复了 list 中“persistent”的拼写错误
更新了 js/popup.js

chrome.tabs.query({'active': true,'currentWindow':true}, function(tab){
console.log('from tab', tab[0]);
chrome.tabs.sendMessage(tab[0].id, {message: 'hi'}, function(response){
console.log(JSON.stringify(response));
});
});

最佳答案

您需要使用 chrome.tabs.sendMessage将消息发送到内容脚本。来自chrome.runtime.sendMessage Chrome 开发者网站上的规范:

Note that extensions cannot send messages to content scripts using this method. To send messages to content scripts, use tabs.sendMessage.

如果这对您来说不是一个好的选择,您可以让每个内容脚本打开一个端口到您的后台页面(这可能需要持久化),然后让您的弹出页面向您的后台页面发送消息,这将通过每个端口将消息中继到所有内容脚本,以告诉它们将消息发送回弹出页面。 (使用 chrome.runtime.connect。)

此外,您在 list 文件中拼错了“persistent”。我不希望您在发现导致问题的原因之前不得不花半个小时深入研究代码。

关于javascript - Chrome扩展端口错误: Could not establish connection.接收端不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17266737/

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