我在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'
});
感谢任何回复的人
"Unchecked runtime.lastError: The message port closed before a response was received."
与您安装的浏览器扩展程序有关,而不是您正在使用的代码。我相信可以安全地忽略这一点。
使用console.log(response)
查看您是否收到了您认为收到的内容。