读取Chrome响应数据的问题

问题描述 投票:0回答:1

我在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'
});


感谢任何回复的人

javascript google-chrome-extension chrome-runtime
1个回答
-1
投票

"Unchecked runtime.lastError: The message port closed before a response was received."与您安装的浏览器扩展程序有关,而不是您正在使用的代码。我相信可以安全地忽略这一点。

使用console.log(response)查看您是否收到了您认为收到的内容。

© www.soinside.com 2019 - 2024. All rights reserved.