如何为chrome扩展正确编写新的“活动页面”?

时间:2013-04-20 22:25:12

标签: google-chrome-extension

在新的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 );

在我安装扩展程序后,我可以在开发人员工具控制台中看到“脚本加载”,但不是“在启动时”和“在计时器上”:(。在我关闭并重新打开浏览器后,即使是“脚本加载”也不是显示(预期)。我做错了什么?

1 个答案:

答案 0 :(得分:3)

来自Google Event Pages API

  

如果您的扩展使用window.setTimeout()或window.setInterval(),   切换到使用警报API。基于DOM的计时器不会成为现实   如果活动页面关闭,我很荣幸。

看起来事件页面正在破坏你的setInterval()函数。