1

友人へのジョークとして、初めての非常にシンプルな Google Chrome 拡張機能を作成しようとしています。「like」のインスタンスを「give a $h1t」に置き換えてほしいです (これは成熟していないように見えますが、楽しみのためです)。

これまでのところ、これは私の Javascript 関数です。

function giveASh!t(){
document.body.innerHTML = document.body.innerHTML.replace(new RegExp("Like", "g"), "Give a sh!t");
}

私が理解しているように、それはHTMLを検索して、「いいね」のすべてのインスタンスを私の選択肢に置き換えます。これは機能します。

ただし、私が直面している問題は、ニュース フィードを下にスクロールしても、新しく生成されたコンテンツが変更されず、「いいね」の新しいインスタンスが変更されないことです。

このコードは最初のページの読み込みが完了すると実行され、一度実行されると再実行されないことを理解しています。

setInterval() メソッドをいじってみたところ、奇妙なエラーが発生しました。間隔を 10 秒に設定しましたが、ページ上の他のコンテンツ (チャット セクションなど) の読み込みに影響し、ページが更新されているかのように「カクカク」するので、あまり良くありませんでした。最終的にはページが壊れ、ニュースフィードをそれ以上下にスクロールできなくなりました。

私の要点は次のとおりです。この JavaScript を継続的に実行するにはどうすればよいですか? おそらく、スクロールイベントをリッスンしてからJavaScriptを実行する方が良いでしょうか?

4

2 に答える 2

2

新しい divが DOM に追加されたときに HTML を更新できる jQuery 用のlivequery()プラグインを使用します。

$("#<id of divs that get added>").livequery(function(){giveAShit();});
于 2012-12-08T02:02:52.470 に答える
0
function giveASh!t(){
document.body.innerHTML = document.body.innerHTML.replace(new RegExp("Like", "g"), "Give a sh!t");
}
window.setInterval(giveASh!t, 1000);
于 2012-06-08T16:40:23.617 に答える