2012-05-11 5 views
4

私は多くの同様の問題を発見しましたが、これは非常に奇妙な問題です。setTimeoutはGreasemonkeyでは必ずしも機能しません

私は問題をテストするための簡単な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 

待機()関数が停止し、その後4回呼び出されます。 Timeoutを100msに設定すると、コールは少なくとも10/15秒間は動作してから停止します。

私が使用している: Firefoxの12.0 のGreasemonkey 0.9.19

+0

ウェブページが完全に読み込まれたときにGreasemonkeyスクリプトが実行を停止する可能性がありますか? – JoP

答えて

6

これはGreasemonkeyの0.9.19のバグです。
ページのJSが無効になっていても問題が発生しても(15491552、および1553など)、setTimeout()が機能するように機能が追加されました。

リリース0.9.20でまもなく解決する必要があります。バージョン0.9.18に戻す必要があります。

+0

私はちょうどバージョン0.9.18をインストールして、すべての問題はありません。あなたは私の一日を救った。 – JoP

+0

あなたは大歓迎です。喜んで助けてください。 –

+0

これは0.9.20でも私に起こっているようでしたが、0.9.18に戻ってしまいましたが、これは問題を修正したようです。何か質問があれば(0.9.20が問題を解決するために実際にサポートされていたかのように)、テストのために何かを試してみてうれしいです。 –

関連する問題