我正在尝试使用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号?
答案 0 :(得分:0)
我是否错误地阅读了您的代码,或者您的clearIntervalOriginal函数是否以无限的方式递归调用?
在Yahoo代码中,i.tid是区间ID。如果要取消间隔,则需要提供该ID。例如:
clearInterval(i.tid);