Chrome扩展background.js传storage数据到popup.js触发端口关闭报错如何解决
问题原因
Chrome扩展的chrome.runtime.onMessage监听器默认在同步代码执行完成后自动关闭消息端口,你代码中调用的chrome.storage.local.get属于异步API,其回调执行时消息端口已经被关闭,sendResponse无法正常传输数据,因此抛出对应报错。
修复方案
在对应逻辑分支末尾添加return true语句,告知Chrome保持消息端口开放,直到sendResponse被调用后再释放端口。
修改后完整background.js代码
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { if (request.greeting == "display-db") { chrome.storage.local.get(["dsr_db"], function (result) { sendResponse({ message: result }); }); // 保持消息端口开放,必须添加 return true; } });
内容的提问来源于stack exchange,提问作者Ajay
相关产品推荐
相关产品推荐

