setInterval not working (firing only once) in Goog

2019-01-18 22:45发布

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).

3条回答
▲ chillily
2楼-- · 2019-01-18 22:55

The way you wrote it it's wrong:

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

查看更多
淡お忘
3楼-- · 2019-01-18 22:59
setInterval(function() { alert('only shown once') },2000);

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

查看更多
姐就是有狂的资本
4楼-- · 2019-01-18 23:11

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']);
查看更多
登录 后发表回答