setInterval () в моем скрипте greasemonkey игнорирует указанное время и постоянно выполняет - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть опыт программирования, но я новичок в greasemonkey и javascript.Я сделал простой скрипт greasemonkey, который перезагружает страницу каждые 10 секунд.Перезагрузка работает, но пауза не происходит, поэтому страница перезагружается снова и снова.

Это код, который я использую:

// ==UserScript==
// @name           my script
// @namespace      http://example.com
// @include        http://*.example.com/page.html*
// ==/UserScript==



var i = setInterval(pageReload(),10000);

function pageReload() {
    window.location.reload();
}

Я пробовал это с setTimeout () и имеет тот же эффект, что и выше.То же самое с бросанием ожидания (10000) во многих разных местах.

Я использую Firefox 10.0.2 и вчера получил greasemonkey, так что это последняя версия.

Одна странность, которую я заметил послеВ основном, синтаксис setInterval () имеет имя функции (параметр 1) в кавычках, например:

var i = setInterval("pageReload()",10000);

Это заставляет скрипт ничего не делать.Без кавычек он работает, но не правильно.

Преимущественно: я удалил и переустановил скрипт.

Ответы [ 2 ]

3 голосов
/ 21 февраля 2012

Вы вызываете функцию непосредственно в данный момент (дополнительные скобки в конце). Попробуйте удалить их:

var i = setInterval(pageReload,10000);

Или, что еще лучше, просто используйте анонимную функцию, поскольку вы не собираетесь использовать эту функцию более одного раза:

var i = setInterval(function() {
            window.location.reload();
        }, 10000);
2 голосов
/ 21 февраля 2012

Парены:

setInterval(pageReload(),10000)

вызов pageReload(), присваивая вместо этого все, что возвращается setInterval;

setInterval(pageReload,10000).

...