Google chrome extension 如何正确地写“新的”;事件页面";对于chrome扩展?

Google chrome extension 如何正确地写“新的”;事件页面";对于chrome扩展?,google-chrome-extension,Google Chrome Extension,在新的chrome扩展API中,“后台页面”被替换为“事件页面”,这些页面在扩展安装时只加载一个,并且需要注册chrome在某些事件中将调用的回调 我想创建“事件页面”,它将每秒执行我的代码。我已经用“manifest.json”创建了一个扩展: 和“background.js”: 安装扩展后,我可以在developer tools控制台中看到“脚本加载”,但不能看到“启动时”和“定时”:( 如果扩展使用window.setTimeout()或window.setInterval(), 改为使用

在新的chrome扩展API中,“后台页面”被替换为“事件页面”,这些页面在扩展安装时只加载一个,并且需要注册chrome在某些事件中将调用的回调

我想创建“事件页面”,它将每秒执行我的代码。我已经用“manifest.json”创建了一个扩展:

和“background.js”:

安装扩展后,我可以在developer tools控制台中看到“脚本加载”,但不能看到“启动时”和“定时”:(

如果扩展使用window.setTimeout()或window.setInterval(), 改为使用alarms API。基于DOM的计时器将不可用 如果事件页面关闭,则表示荣幸


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

setInterval
->
chrome.alarms
@RobW“为了减少用户机器上的负载,chrome将报警限制为最多每1分钟一次,但可能会延迟任意时间。”每秒钟运行一次代码意味着必须始终加载后台页面。然后必须使用后台页面,而不是事件页面。(每秒需要做什么?它必须消耗大量资源,可能会降低浏览器的速度。)
{
  "manifest_version" : 2,
  "name" : "myextension",
  "version" : "1.0.0",
  "background" : { "scripts" : [ "background.js" ], "persistent" : false }
}
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 );