[解決済み] ページに要素が追加されたときに通知されるようにするにはどうすればよいですか?
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)秒ごとに実行されます。リアルタイムの要素観測が必要でない限り、これで十分だろう。
関連
-
WeChatアプレット用ユニアプリによるグローバルシェアリング
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] ページを再読み込みせずにURLを変更するにはどうすればよいですか?
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み] どのDOM要素にフォーカスがあるかを調べるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
JSアレイループと効率解析の比較
-
jsを使った簡単な照明スイッチのコード
-
Vueでルートネスティングを実装する例
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み] 配列の結合時に未定義のプロパティ 'push' を読み込むことができない
-
[解決済み】Node.jsで "Cannot find module "エラーを解決するには?
-
[解決済み] 期待される代入または関数呼び出し: 未使用式なし ReactJS
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)