2011-02-10 10 views
4

私は、毎回それが呼び出されるたびに毎回別のページの内容を確認するたびに、各ページが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(); 
     |>; 
    } 
    } 
} 

答えて

0

あなたはFAcebooksがあなたのタイムアウトをクリアしていることを確認していますか?

console.logは機能していますか?

setIntervalを使用すると、関数を連続的に実行できます。

+0

はい、Facebookは私のタイムアウトをクリアしています。はい、私はfacebookのリンクをクリックするまでコンソールにログを記録するので、私のconsole.logは動作しています。私はsetintervalを使うことができますが、私はsettimeoutと同じようにfacebookで動いています。 –

+0

タイムアウトをグローバル変数に保存してください。次のようなものがあります: window.likesTimeout = setTimeout ... 次に、このvarを調べて、実際に削除されたかどうかを確認します。 –

0

は、この、私のために働いたソリューションをお試しください:

function fooBar(){ 
    // your code goes here 
    console.log("see me every second"); 
    setTimeout(fooBar, 1000); 
} 

setTimeout(fooBar, 1000); 
関連する問題