var newDoc = document.implementation.createHTMLDocument('someTitle');
// swap newDoc with document
DOMImplementation.createHTMLDocument
Is it possible to swap the current document for a new document?
Is there any reasonable reason to do this?
3 Réponses :
Vous ne pouvez pas remplacer l'objet de document actuel ni aucun objet de document avec l'objet code> Créé CODE> Créé avec Le Il a été ajouté plus tard à la spécification HTML5 car il n'y avait pas de moyen programmatique de créer un document HTML. p>
Certains des cas d'utilisation fournis pour la création programmatique d'un document HTML étaient, P>
Créez un document HTML non rendu pour télécharger via XMLHTTPQUEST (au lieu de
Envoi d'un document XML). P> LI>
Feature-tester le DOM HTML dans le code de la bibliothèque d'une manière qui est garantie
Évitez les effets secondaires sur le document affiché. P> li>
créer un document non rendu isolé d'une zone d'édition de texte riche, de sorte que
Le nettoyage côté client peut être effectué avant de télécharger sans déranger le vivant
DOM que l'utilisateur peut toujours modifier davantage. P> li>
Mettre en œuvre HTML5 ALGORITHM CLIENT-CÔTÉ-CLIENT AU JAVASCRIPT POUR TEST ET
objectifs de comparaison, ou pour la sécurité de la virtualisation ou de l'objet-capacité basée sur la capacité. P>
Un iframe invisible peut être utilisé pour la plupart de ces objectifs, mais c'est plus
coûteux en termes de ressources.
Liste de diffusion W3C EM > p> li>
ul>
blockQuote>
La conversation sur les listes de diffusion W3C qui ont apporté la méthode dans la spécification, [Bug 7842] NOUVEAU: Aucun moyen programmatique de créer un document HTML - envisagez d'ajouter CreateHTMLDocument P> CreateHTMLDOCUMUME CODE> Méthode. P>
CreateHtMldocument Code> a été introduit pour la première fois dans l'un des brouillons du noyau code> DOM code>, mais a ensuite été retiré de la recommandation finale. P>
Si vous serialisez le document sur HTML, vous pouvez remplacer le document de la page en cours avec En fait, vous pouvez même modifier le mode Qiirks en mode standard en ajoutant un Par exemple: http://jsbin.com/anusul/2 p> Je ne conseillerais pas C'est une telle supercherie sans scénario spécial, mais cela fonctionne. P> Source: Interrupteur JavaScript de Quirksmode à Standard + Besoin d'aide Avec: jQuery prépend DocType à HTML P> P> document.open code>, document.write code> et document.Close code>. code>. p>
Ce n'est pas très intéressant, car vous devez utiliser une chaîne HTML. J'étais plus intéressé par l'utilisation d'un élément de document
Lorsque vous vous référez à la question initiale, cela vous permet de remplacer un document. Sa compréhension si ce n'était pas ce que vous recherchiez dans le contexte de DomImplementat.CreatehtMldocument code>
Il y a des choses dans le document code> code> qui n'est pas vraiment lié à l'arbre DOM qu'il contient,
telle que Mais ce que vous recherchez peut être efficacement réalisé en remplaçant le document comme pour les raisons de le faire, j'ai jusqu'à présent trouvé qui ne peut pas être obtenu avec un iframe. P> * Notez que si les Doctypes sont différents, vous devez remplacer le Doctype du document principal
noeud avec le nœud DOCTYPE de l'autre document séparément. em> p> p> document.cookie code>, emplacement code> et url code>. Il est beaucoup plus sûr si nous ne pouvons pas remplacer des objets globaux tels que fenêtre code> et document code>. principal < / Code> 'S DocumentElement code> avec l'autre document code>' S documentation code>.
Il aura exactement le même effet que vous recherchez. * P>
Vous ne pouvez probablement pas.
window.document code> est réadonné et il n'y a pas de méthodes surfenêtre code> pour modifier son document liécode>. Je ne pouvais trouver aucune source pour justifier mon hypothèse cependant.Je pensais la même chose mais il pourrait y avoir quelque chose là-bas. Je veux dire quel est le point de créer un nouveau document si vous ne pouvez pas l'injecter dans une fenêtre. Peut-être que vous pouvez l'injecter dans une nouvelle fenêtre / iframe
Oui, vous pouvez l'injecter dans un iframe, c'est le exemple de MDN pour CreateHTMLDocument ( MISE À JOUR B>: Pas directement cependant. Mais vous pouvez jouer avec
ImportNode code> etRemplacement (ImportedDocumentation, document.documentalement) code>). Il peut également être utilisé pour analyser HTML que vous obtenez à partir d'une demande HTTP (puis une représentation DOM de celle-ci).@Raynos J'ai parlé avec vous dans la salle de discussion PHP avant. J'espère que tu vas bien. Merci pour le conseil avant. Vous êtes un mec cool.
@Copy Un document et un document sont radicalement différents. (essayez
document.pototype.isprototypeof (document.documentation code> qui est faux)