4

私はfacebookでブラウザ拡張に取り組んでいますが、今私の問題は、facebookがsetTimeoutとsetIntervalのネイティブ関数をオーバーライドし、それらの実装がInternet Explorerで機能しないことです。

これらの機能を実装する方法はありますか?

4

1 に答える 1

7

iframe を作成してそのオブジェクトにアクセスしwindow、新しいsetTimeout定義を取得して、グローバル名前空間の定義を上書き できます。

var f = document.createElement('iframe');
document.body.appendChild(f);
window.setTimeout = f.contentWindow.setTimeout;
document.body.removeChild(f);  

これは機能しますが、2 つのスクリプトが互いの変数を上書きし始めるのはおそらく良い考えではありません。FB に関数を制御setTimeoutさせ、その新しいコピーを使用することをお勧めしますが、再度上書きしないでください (ローカル変数または別の名前のグローバル変数に格納できます)。

于 2012-10-21T12:34:16.307 に答える