问题描述
Chrome Extension 报错:
Unchecked runtime.lastError: The message port closed before a response was received.
中文意思是,最近未检查的运行时错误:在接收到 response 响应消息之前,消息通道的端口就已经关闭了。
在 Chrome 的开发者工具的 Console 控制台中,可能会发现上面的报错信息。
产生错误的来源有两个:
- 第三方扩展程序。
- 个人开发的扩展程序。
如果是第三方扩展程序,只需从表面上解决该问题,禁用或删除第三方扩展程序即可。
当然,如果是个人开发的扩展程序,必须从根本上解决该问题,否则会严重影响该扩展程序的使用。
下面,我们主要研究,对于我们自己开发的谷歌浏览器扩展程序(Chrome Extension),该如何解决上述报错?
分析和解决问题
在 Chrome 开发者官网,选择 Chrome APIs → Extension APIs,找到关于 chrome.runtime.onMessage.addListener(function callback) 的介绍信息(地址为 https://devel