javascript - Chrome 扩展 "Cannot read property ' onUpdated' of undefined"

标签 javascript jquery google-chrome google-chrome-extension

我有一个脚本,我想每 10 秒将其注入(inject)一个页面。 我使用这段代码:

chrome.tabs.onUpdated.addListener(function(tabId,tab){
    chrome.tabs.executeScript(null,{file:"program.js"});
  }
);

program.js 看起来像这样:

$("body").prepend("Hello World!");  
setTimeout(function(){location.reload();},10000);

这意味着页面应该每 10 秒刷新一次并注入(inject)这段代码,它工作正常,但有时(尤其是在运行多个选项卡时)我会收到此错误:

Uncaught TypeError: Cannot read property 'onUpdated' of undefined 

我猜它没有获取 tabId 或其他东西。
但我无法解决它。

非常感谢您的帮助。

最佳答案

我只在使用 chrome.runtime.onMessageExternal.addListener 时遇到了同样的问题,而 chrome 会提示 onMessageExternal。就像 @scott-f 指出的这个错误的原因是“滥用”重新加载按钮。我删除并重新安装了扩展程序,它工作正常。

事后看来,我建议您使用 cli 中的 --load-extensions='extension/path' 来使用鼠标测试您的扩展,以避免浏览 chrome 菜单的开销,并使用 Selenium 来自动化您的测试。

关于javascript - Chrome 扩展 "Cannot read property ' onUpdated' of undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24673181/

相关文章:

javascript - 在 Mongoose 中查询变量

javascript - 此代码在 ie 10 上运行良好,但在 chrome 和 firefox 上运行不正常(javascript/ajax 部分)

javascript - 脚本的大小(外部链接)+将它们合并为 1

internet-explorer - Safari、Chrome 和 IE 的框阴影

javascript - 如何将圆附加到 svg 文件?

javascript - 从自动完成地址输入中获取纬度和经度,并使用谷歌地图 API 显示下面的 map

php - 来自登录用户名的下拉菜单链接

javascript - 如何获取SVG的fill属性值

javascript - Webpack + React 和 Google Chrome 43.0.2357.65

javascript - 使用数据库查询作为 promise