我的内容脚本向 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);
这使它在没有上述错误的情况下工作。尽管如此,在搜索文档或谷歌之后,我还是找不到这背后的确切原因。有人可以解释发生了什么以及文档是否包含执行此操作的特定方法吗?