1

setIntervalGreasemonkeyを使用してWebサイトを変更しようとしています。私のコードは次のようになります:

// @run-at         document-start

(function() {
    var clearIntervalOriginal = unsafeWindow.clearInterval;
    unsafeWindow.clearInterval = function(foo) {
        GM_log(typeof foo + ":" + foo)
        clearIntervalOriginal(foo);
    }
}());

ウェブサイトの例。

コンソールログを見ると、間隔ID番号がそこになく、代わりにfooオブジェクトであることがわかります。サイトのソースを見ると、これが使用されている関連コードだと思います。

//yahoo code
i.tid=c.setInterval(function(){
    if(i.done){
        c.clearTimeout(i.tid);
        i.rec=[i.t_render-h,i.t_jsload-h,i.t_jsinit-h,i.t_jsend-h,i.t_jsend-i.t_jsinit]
    }
},f);

fooオブジェクトからインターバルID番号を取得するにはどうすればよいですか?

4

1 に答える 1

0

私はあなたのコードを間違って読んでいますか、それともあなたの clearIntervalOriginal 関数は再帰的に自分自身を無限に呼び出していますか?

Yahoo コードでは、i.tid がインターバル ID です。間隔をキャンセルしたい場合は、その ID を指定する必要があります。例えば:

clearInterval(i.tid);

https://developer.mozilla.org/en/DOM/window.clearInterval

于 2012-05-01T05:11:20.937 に答える