我有一个带有chrome扩展名的奇怪错误,它应该在内容脚本和后台页面之间进行通信。它似乎工作了一段时间,但突然它停止工作。让它再次工作的唯一方法是卸载扩展并重新安装它。这适用于chrome商店的版本和我的本地开发人员版本。 (重新加载开发人员版本会不解决问题。)
相关部分是:
chrome.pageAction.onClicked.addListener(function (tab) {
chrome.tabs.sendMessage(tab.id, {greeting: "hello"}, function(response) {
//response is undefined at this point
});
});
我从检查页面看到内容脚本确实被注入相关页面,但是监听器内的代码从未运行过:
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
//never runs this code
});
您可以在此处找到已安装的版本:https://chrome.google.com/webstore/detail/hi-res-cover-art-grabber/oiagpaldkopdbolnebgjlmihmejjkaji 这里有完整的源代码: https://github.com/MrMamen/CoverGrabber/tree/master/chrome
答案 0 :(得分:1)
background.js
中的所有JavaScript都在chrome.runtime.onInstalled.addListener
事件中,只有在安装和更新时才会调用,因此在重新打开浏览器时不会调用它。
您希望确保在此之外注册您的活动,否则您的扩展程序只会在您卸载并重新安装扩展程序时注册活动。