4

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

我有一个简单的 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();

这是萤火虫的输出:

start
wait
wait
wait
wait

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

我正在使用:Firefox 12.0 Greasemonkey 0.9.19

4

1 回答 1

6

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

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

于 2012-05-11T14:52:23.617 回答