私は、毎回それが呼び出されるたびに毎回別のページの内容を確認するたびに、各ページがajax経由で読み込まれるようにしています。 Facebook JSはすべての可能なsetTimeout参照を実行していて、各アプリケーションのレンダリングでclearTimeoutを呼び出すのは役に立たないようです。JavaScriptのsetTimeoutがKRLアプリでFacebook上で消去されています
私の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();
|>;
}
}
}
はい、Facebookは私のタイムアウトをクリアしています。はい、私はfacebookのリンクをクリックするまでコンソールにログを記録するので、私のconsole.logは動作しています。私はsetintervalを使うことができますが、私はsettimeoutと同じようにfacebookで動いています。 –
タイムアウトをグローバル変数に保存してください。次のようなものがあります: window.likesTimeout = setTimeout ... 次に、このvarを調べて、実際に削除されたかどうかを確認します。 –