Google chrome extension 未捕获错误的原因:尝试使用断开连接的端口对象

Google chrome extension 未捕获错误的原因:尝试使用断开连接的端口对象,google-chrome-extension,messaging,Google Chrome Extension,Messaging,在响应请求时,我在后台页面中遇到此错误 从内容脚本。 有人知道是什么导致了这个错误吗 完整堆栈跟踪: Uncaught Error: Attempting to use a disconnected port object chrome/RendererExtensionBindings:147 chrome.Port.postMessage chrome/RendererExtensionBindings:147 chromeHidden.Port.dispatchOnConn

在响应请求时,我在后台页面中遇到此错误 从内容脚本。 有人知道是什么导致了这个错误吗

完整堆栈跟踪:

Uncaught Error: Attempting to use a disconnected port object   chrome/RendererExtensionBindings:147 
chrome.Port.postMessage     chrome/RendererExtensionBindings:147 
chromeHidden.Port.dispatchOnConnect.connectEvent         chrome/RendererExtensionBindings:89 
myExtension.foo.sendResponse.state      background.js:1573 
db.readTransaction.tx.executeSql.paramStr      background.js:1038 
这只发生在几个小时的浏览后,重新加载扩展没有帮助-这不是一个解决方案,在重新启动chrome浏览器后,所有内容都恢复正常几个小时,脚本可以继续向后台发送请求,但没有响应 从后台可以发送回有没有任何方法可以捕获这个未捕获的错误并重置侦听器

我正在使用chrome.extension.onRequest.addListener进行通信。在响应之前,我查询数据库,在查询完成之前,我不发送任何其他响应

谢谢,
Marek

这是连接关闭时引起的。例如,如果您打开一个插入了
内容\u脚本的选项卡,它将打开一个连接,该选项卡将关闭,然后
后台\u页面
尝试传递消息。它将失败,因为选项卡不再处于活动状态,无法接收消息


在您的情况下,我猜随着选项卡的关闭和新选项卡的打开,您正在尝试使用旧的
tabId
来发布消息,而不是创建到新选项卡的新连接。我建议您再次阅读。

在我的情况下,我需要为
chrome.runtime.sendMessage(msg,responseCallbackMissingHere)
提供
sendResponse
函数,这将为您提供“尝试使用断开连接的端口对象”的功能错误。

请在后台页面和内容脚本中提供代码。sendMessage()或postMessage()?chrome.runtime.sendMessage()