setInterval 在 Google Chrome 扩展程序中不起作用(仅触发一次)

新手上路,请多包涵

正如标题所说: setInterval 只触发一次回调。

清单.json:

 {
    //...
    "content_scripts" : [{
        "js" : ["code.js"],
        //...
    }],
    //...
}

code.js(示例):

 setInterval(alert('only shown once'),2000);

为什么,我该如何解决?该代码在扩展之外运行良好(即使在书签中)。

原文由 Camilo Martin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 667
2 个回答
setInterval(function() { alert('only shown once') },2000);

您需要传递一个函数引用,如 alert 而不是返回值 alert()

原文由 qwertymk 发布,翻译遵循 CC BY-SA 3.0 许可协议

setInterval 根本不工作。

第一个参数应该是一个 函数,你传递给它的返回值 alert() 这不是一个函数。

使用三参数版本:

 setInterval(function,time,array_of_arguments_to_call_function_with);
setInterval(alert,2000,['only shown once']);

原文由 Quentin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题