我在popup.html中有一个popup.js文件,该文件将请求发送到background.js,background.js得到一个cookie,如果cookie存在,它将发送响应到popup.js。
但是当我尝试打开弹出窗口时,会收到此错误
1-错误处理响应:TypeError:无法读取未定义的属性'data'
2-未经检查的runtime.lastError:消息端口在收到响应之前已关闭。
代码
Background.js
chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
if (msg.topic === 'data') {
chrome.cookies.get({ url: 'https://domain', name: 'name' },
function (cookie) {
if (cookie) {
sendResponse({data: "yes"});
} else { sendResponse({data: "no"}); }
return true;
}
)};
});
Popup.js
chrome.runtime.sendMessage({
topic: 'data'},
function(response) {
if (response.data == "yes")
document.write = 'COOKIE YES'
else if (response.data == "no")
document.write = 'COOKIE NO'
});
感谢所有回复的人
答案 0 :(得分:-1)
"Unchecked runtime.lastError: The message port closed before a response was received."
与您已安装的浏览器扩展有关,与您使用的代码无关。我相信可以忽略这一点。
使用console.log(response)
来查看您是否认为自己正在接受。