1. ホーム
  2. javascript

[解決済み] ページに要素が追加されたときに通知されるようにするにはどうすればよいですか?

2022-05-01 12:42:47

質問事項

DOM要素がページに追加されたときに、自分で選んだ関数を実行させたいのです。これはブラウザの拡張機能のコンテキストにあるため、ウェブページは私とは無関係に実行され、私はそのソースを変更することができません。この場合、どのような選択肢がありますか?

理屈の上では、単に setInterval() を使用して、要素の存在を継続的に検索し、要素が存在する場合にアクションを実行することができます。

どのように解決するのですか?

<ブロッククオート

警告!

この回答はもう古くなりました。DOMレベル4導入 変異オブザーバ 非推奨の変異イベントの効果的な代替を提供します。参照 本解 を別の質問で紹介すると、ここで紹介したものよりも良い解決策があります。真面目な話です。100ミリ秒ごとにDOMをポーリングしないでください。CPUパワーを浪費し、ユーザーに嫌われます。

以来 変異イベント は2012年に非推奨となり、挿入された要素は他の人のコードによって追加されるため、あなたがコントロールすることはできませんので、唯一の選択肢は継続的にチェックすることです。

function checkDOMChange()
{
    // check for any new element being inserted here,
    // or a particular node being modified

    // call the function again after 100 milliseconds
    setTimeout( checkDOMChange, 100 );
}

この関数が呼ばれると、100ミリ秒、つまり1/10(10分の1)秒ごとに実行されます。リアルタイムの要素観測が必要でない限り、これで十分だろう。