Sie können dies mit einer Daten-URL tun. Dies umfasst das gesamte Dokument in einer einzigen HTML-Zeichenfolge. Zum Beispiel das folgende HTML:
<html><body>foo</body></html>
kann wie folgt codiert werden:
data:text/html;charset=utf-8,%3Chtml%3E%3Cbody%3Efoo%3C/body%3E%3C/html%3E
und dann als src
Attribut des Iframes festlegen . Beispiel .
Bearbeiten: Die andere Alternative besteht darin, dies mit Javascript zu tun. Dies ist mit ziemlicher Sicherheit die Technik, die ich wählen würde. Sie können nicht garantieren, wie lange eine Daten-URL vom Browser akzeptiert wird. Die Javascript-Technik würde ungefähr so aussehen:
var iframe = document.getElementById('foo'),
iframedoc = iframe.contentDocument || iframe.contentWindow.document;
iframedoc.body.innerHTML = 'Hello world';
Beispiel
Edit 2 (Dezember 2017) : Verwenden Sie das srcdoc- Attribut von HTML5 , genau wie in der Antwort von Saurabh Chandra Patel , die jetzt die akzeptierte Antwort sein sollte! Wenn Sie IE / Edge effizient erkennen können , sollten Sie die srcdoc-polyfill- Bibliothek nur für sie und das Attribut "pure" srcdoc in allen Nicht-IE / Edge-Browsern verwenden (überprüfen Sie caniuse.com , um sicherzugehen).
<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
Browsers keine Nachkommen-Skript-Tags ausgeführt werden. Weitere Informationen finden Sie im Abschnitt Sicherheitsüberlegungen auf der MDN-Seite Element.innerHTML.Verwenden Sie
html5
das neue Attributsrcdoc
(srcdoc-polyfill) DocsBrowserunterstützung - In folgenden Browsern getestet:
quelle
Laut W3Schools können Sie dies in HTML 5 mithilfe eines neuen Attributs "srcdoc" tun , aber die Browserunterstützung scheint sehr eingeschränkt zu sein.
quelle