SetInterval не работает (срабатывает только один раз) в расширении Google Chrome

Как гласит название: setInterval только один раз запускает свой обратный вызов.

manifest.json:

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

code.js(пример):

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

Почему и как я могу это исправить? Код хорошо работает вне расширения (даже в букмаркете).

Ответ 1

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

Вам нужно передать ссылку на функцию, например alert, а не возвращаемое значение alert()

Ответ 2

setInterval вообще не работает.

Первым аргументом должна быть функция, вы передаете ей возвращаемое значение alert(), которое не является функцией.

Используйте три версии аргументов:

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

Ответ 3

Как вы написали это неправильно:

setInterval() требуется функция и числовое значение: setInterval(function(){//your code}, timeInterval).