Javascript &引用;Unchecked runtime.lastError:消息端口在收到响应之前关闭;铬延伸
我正在构建一个chrome扩展,并试图在我的背景和内容脚本之间创建连接,但'chrome.runtime.lastError设置为:Javascript &引用;Unchecked runtime.lastError:消息端口在收到响应之前关闭;铬延伸,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在构建一个chrome扩展,并试图在我的背景和内容脚本之间创建连接,但'chrome.runtime.lastError设置为: 消息端口在收到响应之前关闭。 我遵循了这个解决方案,并添加了“return true”以将其标记为Aynchronous,以保持端口打开,但仍然得到一个错误。这是我的密码 bacground.js chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { var message = {
消息端口在收到响应之前关闭。
我遵循了这个解决方案,并添加了“return true”以将其标记为Aynchronous,以保持端口打开,但仍然得到一个错误。这是我的密码
bacground.js
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
var message = { message: "tab has been updated, read HTML from tab" };
chrome.tabs.sendMessage(tabId, message);
//send second message
chrome.tabs.sendMessage(
tabId,
{ tabCreated: "true" },
function (response) {
if (chrome.runtime.lastError){
console.log(chrome.runtime.lastError)
}
console.log("received response from context page", response)
contextPageWidth = response.pageWidth
});
});
content.js
chrome.runtime.onMessage.addListener((request, sendResponse) => {
sendResponse({pageWidth:"100"})
return true;
});
有人知道我哪里出错了吗?您需要向事件侦听器添加“sender”参数,如下所示:
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
sendResponse({message:foo})
return true;
});
有关更多文档,请访问:您需要向事件侦听器添加“sender”参数,如下所示:
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
sendResponse({message:foo})
return true;
});
有关更多文档,请访问:这基本上是一个输入错误:您在
请求
之后错过了发送者
参数,请参阅文档。顺便说一句,您不需要在此处返回true
。同时移除第一个chrome.tabs.sendMessage(tabId,message);这基本上是一个输入错误:您在请求
之后错过了发送者
参数,请参阅文档。顺便说一句,您不需要在此处返回true
。同时移除第一个chrome.tabs.sendMessage(tabId,message);