在新的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 );
在我安装扩展程序后,我可以在开发人员工具控制台中看到“脚本加载”,但不是“在启动时”和“在计时器上”:(。在我关闭并重新打开浏览器后,即使是“脚本加载”也不是显示(预期)。我做错了什么?
答案 0 :(得分:3)
如果您的扩展使用window.setTimeout()或window.setInterval(), 切换到使用警报API。基于DOM的计时器不会成为现实 如果活动页面关闭,我很荣幸。
看起来事件页面正在破坏你的setInterval()函数。