setInterval not working (firing only once) in Google Chrome extension

自作多情 提交于 2019-11-27 03:53:35

问题


Just as the title says: setInterval is only firing its callback once.

manifest.json:

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

code.js (example):

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

Why, and how I could fix it? The code works well outside of an extension (even in a bookmarklet).


回答1:


setInterval(function() { alert('only shown once') },2000);

You need to pass a function reference like alert and not a return value alert()




回答2:


setInterval isn't working at all.

The first argument should be a function, you are passing it the return value of alert() which isn't a function.

Use the three argument version:

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



回答3:


The way you wrote it it's wrong:

setInterval() wants a function and a numerical value: setInterval(function(){//your code}, timeInterval).



来源:https://stackoverflow.com/questions/8971871/setinterval-not-working-firing-only-once-in-google-chrome-extension

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!