1

我正在尝试setInterval使用 Greasemonkey 在网站上进行修改。我的代码如下所示:

// @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 回答