à l'aide de document.createDocumentFragment() et innerHTML à manipuler le DOM

Je suis de la création d'un fragment de document comme suit:

var aWholeHTMLDocument = '<!doctype html> <html><head></head><body><h1>hello world</h1></body></html>';
var frag = document.createDocumentFragment();
frag.innerHTML = aWholeHTMLDocument;

La variable aWholeHTMLDocument contient une longue chaîne qui est l'ensemble du document html d'une page, et je veux l'insérer à l'intérieur de mon fragment afin de générer et de manipuler le dom de manière dynamique.

Ma question est, une fois que j'ai ajouté que la chaîne de fragger.innerHTML, ne devrait-elle pas de charge de cette chaîne et de les convertir en un objet DOM? Après le réglage de innerHTML, ne devrais-je pas avoir accès au DOM par le biais d'une propriété? J'ai essayé de frag.childNodes mais il ne semble pas contenir quoi que ce soit, et tout ce que je veux, c'est juste l'accès nouvellement créé DOM.

  • Je ne suis pas sûr que c'est possible pour le "innerHTML" de tout élément du DOM (et un fragment de document est vraiment juste un élément du DOM qui ne peuvent pas faire partie de la DOM) pour être complet d'un document HTML. La réponse à votre question serait "oui" si c'était possible.
  • Au lieu de .appendChild(frag) que vous faites .innerHTML une fois pour toutes. Il est plus rapide que de créer un fragment de document, parce que la manipulation des chaînes est plus rapide.
  • La preuve: jsperf.com/fragments-vs-html-strings
InformationsquelleAutor Loic Duros | 2011-11-20