Vous pouvez le faire avec une URL de données. Cela inclut le document entier dans une seule chaîne de HTML. Par exemple, le code HTML suivant:
<html><body>foo</body></html>
peut être encodé comme ceci:
data:text/html;charset=utf-8,%3Chtml%3E%3Cbody%3Efoo%3C/body%3E%3C/html%3E
puis définissez comme src
attribut de l'iframe. Exemple .
Edit: L'autre alternative est de faire cela avec Javascript. C'est presque certainement la technique que je choisirais. Vous ne pouvez pas garantir la durée d'acceptation d'une URL de données par le navigateur. La technique Javascript ressemblerait à ceci:
var iframe = document.getElementById('foo'),
iframedoc = iframe.contentDocument || iframe.contentWindow.document;
iframedoc.body.innerHTML = 'Hello world';
Exemple
Edit 2 (décembre 2017) : utilisez les Html5 Html5 , tout comme dans la réponse de Saurabh Chandra Patel , qui devrait maintenant être la réponse acceptée! Si vous pouvez détecter efficacement IE / Edge , une astuce est d'utiliser la bibliothèque srcdoc-polyfill uniquement pour eux et l'attribut srcdoc "pur" dans tous les navigateurs non-IE / Edge (vérifiez caniuse.com pour être sûr).
<iframe srcdoc="<html><body>Hello, <b>world</b>.</body></html>"></iframe>
Blocked a frame with origin "http://localhost" from accessing a cross-origin frame
.innerHTML
navigateur, il n'exécutera pas les balises de script descendantes. Pour plus d'informations, consultez la section Considérations sur la sécurité de la page MDN Element.innerHTML.utiliser
html5
le nouvel attribut desrcdoc
(srcdoc-polyfill) DocsPrise en charge du navigateur - Testé dans les navigateurs suivants:
la source
Selon W3Schools, HTML 5 vous permet de le faire en utilisant un nouvel attribut "srcdoc" , mais le support du navigateur semble très limité.
la source