Chrome扩展程序中的邮件传递有哪些高级故障排除方法?

时间:2017-10-16 22:52:26

标签: google-chrome google-chrome-extension

我有一个Chrome扩展程序,其中弹出消息显示内容脚本 - 非常简单。以下内容适用于macOS(Chrome 61.0.3164.100),但不适用于Windows 10(Chrome 61.0.3163.100):

aSearch.js(弹出式广告)

function sendMessage(comment){
  window.close();   //Close popup.
  console.log("In send message: " + comment);

  chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
      chrome.tabs.sendMessage(tabs[0].id, {method: "insertComment", comment: comment}, function(response) {
          // console.log(response.farewell);
      });
  });

}

然后是content.js:

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    console.log('In content script after receiving request to insertcomment...');

    if (request.method == 'insertComment'){
etc...

我可以提供更多代码......但即使background.js显示相关活动,“console.log”也不会触发。

aSearch.js是一个html弹出窗口,用于替换初始的...后登录(不确定这是否重要)。这是在background.js中完成的:

chrome.browserAction.setPopup({   //Sets popup to last visited
popup: 'aSearch.html'   // Open this html file within the popup.
});

关于什么可以使消息传递中断的任何指导?我是否应该采用不同的方法来处理在许多选项卡中使用的常量(频繁)消息传递?

为什么Chrome for Windows采取不同的行动?

旁注:我实际上更新了Chrome for Windows,因为我写了这个问题......在更新突然消息传递工作之后,一点点,然后又回到了休眠状态。

更新问题: 我在顶部的aSearch.js弹出窗口添加了更多代码......

我认为我在关闭弹出窗口之前可以发送消息...并且它有时会工作(并且在我的macOS开发机器上),因为计算机速度很快。在Windows上,我的Mac上的VM,不是那么快......

明天我会在消息的响应中移动关闭...等待消息回复。

这看起来有道理吗?

1 个答案:

答案 0 :(得分:0)

这里的问题确实是在成功发送邮件之前无法关闭弹出窗口。

咄。

但挑战是,在我的机器上,消息在窗口关闭之前成功发送。所以我没有发现这个错误。

我让消息接收器确认成功,然后关闭弹出窗口。像魅力一样。