setTimeout并不总是在Greasemonkey中工作

时间:2012-05-11 14:25:36

标签: greasemonkey settimeout

我发现了很多类似的问题,但是没有相同的问题,没有正确的解决方案。这是一个非常奇怪的问题。

我有一个简单的Greasemonkey脚本来测试这个问题:

// ==UserScript==
// @name        testdiddio
// @namespace   http://userscripts.org/users/useridnumber
// @include     https://www.google.it/
// @version     1
// ==/UserScript==


function wait(){
    console.info("wait");
    setTimeout(wait,1000);
}

console.info("start");
wait();

这是firebug的输出:

start
wait
wait
wait
wait

wait()函数被调用4次然后停止。如果我将超时设置为100毫秒,则呼叫似乎至少工作10/15秒然后停止。

我正在使用: Firefox 12.0 Greasemonkey 0.9.19

1 个答案:

答案 0 :(得分:6)

这是Greasemonkey 0.9.19中的一个错误 添加了一项功能,即使页面的JS被禁用并且引入了一些复杂功能(问题154915521553等),setTimeout()也可以正常工作。

应该在0.9.20版本中很快解决,或者恢复到版本0.9.18。