Facebookの各投稿(ステータス、画像など)に関連付けられたリンクを保持するすべての「uiStreamSource」を追跡して、日付の横に1つのボタンを追加して、Google Chrome拡張機能を使用して他のタスクを実行することに成功しました。このボタンは、このコンテキストで言及する重要ではない定義済みのジョブを実行します。
私はこのコンテンツスクリプトを書きました:
contentscript.js
var nodeslist=document.getElementsByClassName("uiStreamSource");
alert(nodeslist.length);
Facebook ページが読み込まれるたびに、アラートには 10 個の検出されたクラス (つまり、10 件の投稿) が表示されます。しかし、下にスクロールすると、新しい投稿が表示され、このコードはそれらを検出できません。すべての投稿ですべての uiStreamSource ノードを更新する必要があるため、どうすればこれを解決できますか?
アップデート
contentscript.js で次のコードを試しました。
load();
document.addEventListener("DOMNodeInsertedIntoDocument", load, false);
function load(){
var nodeslist=document.getElementsByClassName("uiStreamSource");
alert(nodeslist.length);
}
初めて実行すると、現在のノード (現在の facebook の投稿) の正しい数が取得されますが、下にスクロールしてさらに多くの投稿が取得されると、ロード関数が呼び出されたことを示すアラートが表示されますが、印刷されたノードの数は 0 です。何故ですか?
よろしくお願いします。