Javascript 获取对background.js的响应时:未选中runtime.lastError:无法建立连接
noobie JS dev在这里,我正在开发一个chrome扩展,我有两个脚本,background.JS和popup.JS-我需要根据background.JS中的一些操作调用popup.JS中的一个函数,所以我发现我可以发送消息。这对我来说很好,但是我还需要将response发送回background.js脚本,我在popup.html:1中得到了这个错误 未选中的runtime.lastError:无法建立连接。接收端不存在 有趣的是,控制台从检查视图:背景@chrome://extensions/ 记录响应良好,但控制台检查弹出窗口时记录未定义并显示错误 谢谢你的帮助 (以下代码已简化) background.js:Javascript 获取对background.js的响应时:未选中runtime.lastError:无法建立连接,javascript,google-chrome-extension,Javascript,Google Chrome Extension,noobie JS dev在这里,我正在开发一个chrome扩展,我有两个脚本,background.JS和popup.JS-我需要根据background.JS中的一些操作调用popup.JS中的一个函数,所以我发现我可以发送消息。这对我来说很好,但是我还需要将response发送回background.js脚本,我在popup.html:1中得到了这个错误 未选中的runtime.lastError:无法建立连接。接收端不存在 有趣的是,控制台从检查视图:背景@chrome://extens
chrome.runtime.sendMessage('hi', response => {
console.log(response);
});
popup.js
chrome.runtime.onMessage.addListener(
function (message, sender, sendResponse) {
if (message == 'hi') {
//some DOM actions here
sendResponse('bye');
}
return true;
});
刚刚删除了@wOxxOm建议的
return true
。刚刚删除了@wOxxOm建议的return true
。假设您知道弹出代码只在显示时运行,那么您的后台脚本应该在适当的时间发送消息,这是唯一明显的事情(没有看到实际的扩展名)同步响应时是否不需要返回true
。@wOxxOm是的,我知道只有当弹出窗口打开时,它才会运行,这部分很好。我删除了返回的true;它确实有效,但我非常困惑,因为我实际上添加了这一行,因为没有它它就无法工作,在其他一些帖子中,有人说它会有所帮助。xDDD所以idk以前出了什么问题,但无论如何,谢谢..@wOxxOm我知道这可能是太多的问题了,但由于我对这一切都很陌生,你能给我介绍一些材料,解释一下为什么return true
会将同步更改为异步吗?也许这两者之间也有什么区别(我只知道一些基础知识)。请参阅假设您知道弹出代码仅在显示时运行,因此您的后台脚本应在适当的时间发送消息,这是唯一显而易见的事情(没有看到实际的扩展名)同步响应时是否不需要返回true
。@wOxxOm是的,我知道只有当弹出窗口打开时,它才会运行,这部分很好。我删除了返回的true;它确实有效,但我非常困惑,因为我实际上添加了这一行,因为没有它它就无法工作,在其他一些帖子中,有人说它会有所帮助。xDDD所以idk以前出了什么问题,但无论如何,谢谢..@wOxxOm我知道这可能是太多的问题了,但由于我对这一切都很陌生,你能给我介绍一些材料,解释一下为什么return true
会将同步更改为异步吗?也许这两者之间有什么区别(我只知道一些基本知识)。看到了吗