1. ホーム
  2. javascript

[解決済み] ある要素が存在するまで待つには?

2022-02-03 04:18:52

質問

ChromeのExtensionを作っているのですが、ある要素がいつ出現したかを知るのに一番良い方法は何でしょうか?あるいは、jQueryにこれを行う簡単な方法があるのでしょうか?

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

DOMNodeInserted は、他の DOM 変異イベントと同様、パフォーマンスの問題から非推奨とされています。 変異オブザーバ を使用してDOMを監視します。しかし、これは新しいブラウザでしかサポートされていないため、DOMを監視するためには DOMNodeInserted の場合 MutationObserver は利用できません。

let observer = new MutationObserver((mutations) => {
  mutations.forEach((mutation) => {
    if (!mutation.addedNodes) return

    for (let i = 0; i < mutation.addedNodes.length; i++) {
      // do things to your newly added nodes here
      let node = mutation.addedNodes[i]
    }
  })
})

observer.observe(document.body, {
    childList: true
  , subtree: true
  , attributes: false
  , characterData: false
})

// stop watching using:
observer.disconnect()