1
私はGreasemonkeyを使用してウェブサイト上でsetInterval
を変更しようとしています。私のコードは次のようになります:javascript:setintervalにオブジェクトを渡すサイト
// @run-at document-start
(function() {
var clearIntervalOriginal = unsafeWindow.clearInterval;
unsafeWindow.clearInterval = function(foo) {
GM_log(typeof foo + ":" + foo)
clearIntervalOriginal(foo);
}
}());
例websiteです。
コンソールログを見ると、間隔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番号を取得できますか?
あなたはどのような 'console.log'出力を見ることができるものです。それが何であれ、それはあなた自身のために答えるのは簡単なことです。 –
2番目のコードの 'c'は何を参照していますか?最初のビットでは、 'clearInterval'が置き換えられます(これは良い戦略ではありません)。その後、' clearTimeout'が呼び出されます。それは意図されていますか? Nickによると、タイマーリファレンスは 'i.tid'にあるので、それを取り消す必要があります。 – RobG