在新的 chrome 扩展 API 中,“背景页面”被替换为“事件页面”,这些页面在扩展安装时只加载一个,并且需要注册 chrome 在某些事件中调用的回调。
我想创建每秒执行我的代码的“事件页面”。我用“manifest.json”创建了一个扩展:
{
"manifest_version" : 2,
"name" : "myextension",
"version" : "1.0.0",
"background" : { "scripts" : [ "background.js" ], "persistent" : false }
}
和“background.js”:
function onTimer()
{
console.log( "on timer" );
}
function onStartup()
{
console.log( "on startup" );
window.setInterval( onTimer, 1000 );
}
console.log( "script load" );
chrome.runtime.onStartup.addListener( onStartup );
安装扩展后,我可以在开发人员工具控制台中看到“脚本加载”,但看不到“启动时”和“定时器”:(。在我关闭并重新打开浏览器后,即使是“脚本加载”也看不到显示(这是预期的)。我做错了什么?
最佳答案
If your extension uses window.setTimeout() or window.setInterval(), switch to using the alarms API instead. DOM-based timers won't be honored if the event page shuts down.
看起来事件页面在破坏您的 setInterval() 函数。
关于google-chrome-extension - 如何为 chrome 扩展正确写入新的 "event page"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16125815/