Chrome扩展程序在控制台中抛出错误

我的内容脚本将消息发送到background.js。 在响应的回调处理程序中,我最后一行是"alert(alrt_msg)" 。 在执行代码时,我会看到警告框,但点击“确定”后,Chrome控制台显示如下红色:

Error in event handler for 'undefined': Cannot call method 'disconnect' of null TypeError: Cannot call method 'disconnect' of null
    at chromeHidden.Port.sendMessageImpl (miscellaneous_bindings:285:14)
    at chrome.Event.dispatch (event_bindings:237:41)
    at Object.chromeHidden.Port.dispatchOnMessage (miscellaneous_bindings:250:22) 

它没有太多的信息,但直观地我知道这个错误是因为某些地方的结构是垃圾收集,而用户点击“确定”。 所以我把我的代码作为

window.setTimeout(function() { alert(alrt_msg); } , 1);

这使其工作没有上述错误。 尽管如此,在搜索文档或谷歌后,我无法找到背后的确切原因。 有人可以解释发生了什么,如果文档包含一个特定的方法来做到这一点?


我也遇到了同样的问题。 这是由于在响应处理程序中调用的函数中出现错误(我的代码出错)。

这是我的代码:

在background.js中 - 聆听方面

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    var update_msg = 'test';
    sendResponse({data: update_msg});
    return false; // -> Add this or not add this do not matter
  });
}

在发送方:

function updateObjDatabase(obj) {
  chrome.runtime.sendMessage({data: obj}, function(response) {
    // Update when it's done
    update_msg_handler(response.data);
  });
}

function update_msg_handler(msg) {
  ..... error code here
}

错误的代码实际上在函数update_msg_handler 。 但Chrome控制台不会告诉你这些细节。 如果你没有IDE,你必须添加一些console.log来进行调试。


我有同样的错误。 这是iMacros的应用程序。 我删除后没有错误。

链接地址: http://www.djcxy.com/p/63733.html

上一篇: Chrome extension throwing error in console

下一篇: mysqli prepared statement , how to loop the result set