Javascript 无法多次发送chrome扩展消息
我在我的应用程序中使用chrome扩展长期连接。在第一次发送消息时一切正常,但在第二次发送时出现异常:“尝试使用断开连接的端口对象”。 我的代码(我删除了所有捕获代码): content.js:Javascript 无法多次发送chrome扩展消息,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我在我的应用程序中使用chrome扩展长期连接。在第一次发送消息时一切正常,但在第二次发送时出现异常:“尝试使用断开连接的端口对象”。 我的代码(我删除了所有捕获代码): content.js: var port = chrome.runtime.connect({name: "letmeknow"}); function checkIf_hiddenDiv_wasChanged() { try {
var port = chrome.runtime.connect({name: "letmeknow"});
function checkIf_hiddenDiv_wasChanged()
{
try
{
port.postMessage({message: contentScriptMessage});
}
catch(err)
{
;
}
}
port.onMessage.addListener(function(msg) {
try
{
messageData=msg.data;
alert('content received: '+messageData);
}
catch(err)
{
;
}
});
background.js:
chrome.runtime.onConnect.addListener(function(port) {
console.assert(port.name == "letmeknow");
port.onMessage.addListener(function(msg)
{
try
{
returnMessage(port, msg.message);
}
catch(err)
{
;
}
});
});
//==============================================//
function returnMessage(port, messageToReturn)
{
try
{
chrome.tabs.getSelected(null, function(tab)
{
var joinedMessage = messageToReturn + '***' +backgroundScriptMessage;
alert('bg send: '+joinedMessage);
alert(port.name);
port.postMessage({data: joinedMessage});
alert(port.name);
});
}
catch(err)
{
;
}
}
manifest.json:
{
"manifest_version": 2,
"name": "MyApp",
"version": "1.0",
"browser_action":
{
"default_icon": "icon.png",
"default_popup": "mainpage.html"
},
"background":
{
"page": "mainpage.html"
},
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"content_scripts":
[
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
],
"permissions": ["tabs","cookies","activeTab","https://api.domain.com/","<all_urls>"]
}
{
“清单版本”:2,
“名称”:“MyApp”,
“版本”:“1.0”,
“浏览器操作”:
{
“默认图标”:“icon.png”,
“默认弹出窗口”:“mainpage.html”
},
“背景”:
{
“页面”:“mainpage.html”
},
“内容安全策略”:“脚本src'self”“不安全评估”;对象src'self',
“内容脚本”:
[
{
“匹配项”:[“”],
“js”:[“content.js”]
}
],
“权限”:[“选项卡”、“cookies”、“活动选项卡”https://api.domain.com/",""]
}
我做错了什么?
(我在background.js中定义了“var port=chrome.runtime.connect…”的地方看到了一些版本。我需要像现在一样定义它。)你在后台页面或内容脚本中看到了这个错误吗?我在内容中看到了它。