Comment faire pour attendre jusqu'à ce qu'un élément n'existe?

je travaille sur une Extension dans Chrome, et je me demande: Quelle est la meilleure façon de savoir quand un élément entre en existence? En utilisant javascript simple, avec un intervalle qui vérifie jusqu'à ce qu'un élément existe, ou jQuery a-t-il un moyen facile de le faire?

175
demandé sur Nakilon 0000-00-00 00:00:00

1 réponses

DOMNodeInserted est déprécié, ainsi que les autres événements de mutation DOM, en raison de problèmes de performance - l'approche recommandée est d'utiliser un MutationObserver pour surveiller le DOM. Il est seulement pris en charge dans les navigateurs plus récents Si, donc vous devriez revenir sur DOMNodeInserted quand MutationObserver n'est pas disponible.

var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    if (!mutation.addedNodes) return

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

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

// stop watching using:
observer.disconnect()
113
répondu hughsk 2015-08-05 12:39:58