我有一个脚本,我想每 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/