javascript:将对象传递给setinterval的站点

时间:2012-05-01 04:15:33

标签: javascript greasemonkey

我正在尝试使用Greasemonkey修改网站上的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号?

1 个答案:

答案 0 :(得分:0)

我是否错误地阅读了您的代码,或者您的clearIntervalOriginal函数是否以无限的方式递归调用?

在Yahoo代码中,i.tid是区间ID。如果要取消间隔,则需要提供该ID。例如:

clearInterval(i.tid);

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