MutationObserver で要素の存在を待つ
Chrome 拡張機能の開発で遭遇したように、要素がいつ利用可能になるかを知ることが重要です。ページ。間隔を置いて外観をチェックするのは一般的な方法ですが、非効率的な場合があります。幸いなことに、jQuery は単純な解決策を提供しません。
現代的で効果的な代替手段は、MutationObserver API を利用することです。これにより、DOM ツリー内の変更をリッスンする JavaScript 関数を作成できます。
function waitForElm(selector) { return new Promise(resolve => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver(mutations => { if (document.querySelector(selector)) { observer.disconnect(); resolve(document.querySelector(selector)); } }); observer.observe(document.body, { childList: true, subtree: true }); }); }
この関数は入力としてセレクターを受け取り、要素が見つかったときに解決される Promise を返します。
これを使用するには、次のように記述できます:
waitForElm('.some-class').then((elm) => { console.log('Element is ready'); console.log(elm.textContent); });
または、非同期/待機:
const elm = await waitForElm('.some-class');
以上がJavaScript で要素の存在を効率的に待つにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。