4

各ページがajax経由でロードされるため、実行するたびに自分自身を呼び出すsetTimeoutを使用して、さまざまなページのコンテンツを継続的にチェックしています。Facebook JS は、可能なすべての setTimeout 参照を実行し、アプリを役に立たなくするたびに clearTimeout を呼び出しているようです。

Facebook の JS によって setTimeout が無力な小さなバグのように押しつぶされるのを防ぐ方法はありますか?

これが私のコードです。何が起こっているのかを確認し、必要に応じてソリューションをテストできます。

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();
      |>;
    }
  }
}
4

2 に答える 2

0

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

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

setIntervalを使用して、関数を継続的に実行できます。

于 2011-04-18T00:57:42.987 に答える
0

これを試してみてください。私にとってはうまくいった解決策です:

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

setTimeout(fooBar, 1000);
于 2011-12-03T01:35:31.540 に答える