我有编程经验,但我是关于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);
这会导致脚本无效。没有引号,它会运行但不正确。
先发制人:我已删除并重新安装了该脚本。
答案 0 :(得分:3)
您此刻直接调用该函数(结尾处的额外括号)。尝试删除它们:
var i = setInterval(pageReload,10000);
或者,更好的是,只使用匿名函数,因为您不会多次使用该函数:
var i = setInterval(function() {
window.location.reload();
}, 10000);
答案 1 :(得分:2)
parens:
setInterval(pageReload(),10000)
调用 pageReload()
将其返回的内容分配给setInterval
,而不是;
setInterval(pageReload,10000)
。