2009-08-17 7 views
1

J'ai une chaîne (récupérée via ajax), qui est un document html entier (doctype à </html>). Est-ce que quelqu'un sait d'un moyen de le charger dans un iframe?charger une chaîne de document dans un iframe

Je ne peux pas simplement spécifier l'URL qui a renvoyé le document dans le src de l'iframe, car la réponse peut provenir d'un post, et le répéter peut avoir des effets néfastes. En outre, je ne peux pas le soumettre à l'iframe la première fois, car je ne peux pas prédire absolument que le résultat sera un document et non un certain json. Fondamentalement, je ne me souviens pas de l'URL, je dois être capable d'utiliser la version que j'ai (une chaîne).

jQuery est un jeu équitable, puisque c'est ce que j'utilise.

+0

[Voilà comment] (http://softwareas.com/injecting-html-into-an-iframe). –

Répondre

0

Vous pouvez le faire en utilisant un data URI. Un URI de données est un moyen de charger des données en ligne comme si vous chargiez des données externes. Ils ressemblent à ceci: data:<mimetype>,<data>. Pour HTML, le type MIME est text/html, et dans votre cas, les données sont quelque chose comme ceci: <!DOCTYPE><html><head><title>Iframe</title></head><body>Hi!</body></html>. Si nous mettons cela dans un ensemble de données URI, nous obtenons quelque chose comme ce qui suit:

data:text/html,<!DOCTYPE><html><head><title>Iframe</title></head><body>Hi!</body></html> 

Lorsque nous avons ce que l'src du iframe, il ressemble à ceci.

var string = '<!DOCTYPE><html><head><title>Iframe</title></head><body>Hi!</body></html>', 
 
    iframe = $('#iframe') 
 

 
iframe.attr('src', 'data:text/html,' + string)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<iframe id="iframe" src=""></iframe>

Questions connexes