我正在使用一个setTimeout,它每次运行时都会调用自己来持续检查不同页面的内容,因为每个页面都是通过 ajax 加载的。似乎 Facebook JS 正在运行所有可能的 setTimeout 引用,并为每次渲染我的应用程序无用调用 clearTimeout。
有没有办法可以防止我的 setTimeout 像 Facebook 的 JS 无助的小错误一样被压扁?
这是我的代码,因此您可以查看正在发生的事情并根据需要测试您的解决方案:
ruleset a60x542 {
meta {
name "shun-the-facebook-likes"
description <<
shun-the-facebook-likes
>>
author "Mike Grace"
logging off
}
dispatch {
domain "facebook.com"
}
rule find_the_likes {
select when pageview "facebook\.com"
{
emit <|
KOBJ.a60x542.removeLikes = function() {
$K(".uiUfiLike, .like_link, .cmnt_like_link").remove();
var timeout = window.setTimeout(function() {
KOBJ.a60x542.removeLikes();
}, 4000);
console.log(timeout);
} // removeLikes()
KOBJ.a60x542.removeLikes();
|>;
}
}
}