2009-08-31 8 views
4

Je dois injecter dans une fenêtre iframe un objet document que j'ai instancié précédemment, et je ne peux pas le sérialiser en une chaîne ou une URL distante (ce sont des solutions proposées sur des posts stackoverflow précédents) , car les éléments de ce document sont liés à d'autres objets de mon code.Comment remplacer l'objet document d'une fenêtre/iframe

Comment puis-je le faire?

merci, b.

+1

pouvez-vous objet document instancie déjà à l'intérieur iframe? –

+0

Je n'ai aucune idée de ce que votre question est ici dans le monde. Vous vous demandez si je suis le seul. – epascarello

+0

Djko: ben c'était la dernière solution à laquelle je pensais: instancier l'objet à l'intérieur de l'iframe puis le modifier, enfin injecter iframe dans le document principal. Je voulais m'assurer que je ne manquais pas quelque chose. –

Répondre

5

Essayez d'utiliser importNode:

/* Change these: */ 
var documentToCopy = document, 
    iframeDocument = iframe.contentWindow.document; 

/* Replace current document-element (<html>) with the new one: */ 
iframeDocument.replaceChild(
    iframeDocument.importNode(documentToCopy.documentElement, true), 
    iframeDocument.documentElement 
); 

Voir https://developer.mozilla.org/en/DOM/document.importNode

+1

cela fonctionne bien dans Safari 4, mais pas dans FireFox. Je dois maintenant admettre que j'injecte des documents svg et xml, pas simplement des documents html. Des indices? Merci quand même. –

Questions connexes