Chrome扩展程序在一段时间后停止工作。响应未定义

时间:2017-11-13 11:20:36

标签: javascript google-chrome google-chrome-extension

我有一个带有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

1 个答案:

答案 0 :(得分:1)

background.js中的所有JavaScript都在chrome.runtime.onInstalled.addListener事件中,只有在安装和更新时才会调用,因此在重新打开浏览器时不会调用它。

您希望确保在此之外注册您的活动,否则您的扩展程序只会在您卸载并重新安装扩展程序时注册活动。