2016-08-02 11 views
3

Ich habe eine Zeichenfolge von HTML-Tags, die ich hinzufügen oder ändern kann, wann immer ich möchte.Laden einer Zeichenfolge, wenn HTML in ein iframe mit JavaScript

Ist es möglich, diese Zeichenfolge zur Laufzeit in einen Iframe zu laden, als wäre es eine HTML-Datei?

Dies ist für Konstrukt 2. Ich habe ein Objekt, das HTML von einer URL laden kann, kann es auch HTML einfügen und Skripts ausführen, aber nicht so wie es ist.

+0

Ja mit Daten uri, ist es möglich. –

+0

Leider sieht es so aus, als würde Javascript nicht funktionieren, da ich vom Editor eingeschränkt bin, was ich in das Skript eingeben kann. Ich kann Strings hinzufügen, nur nicht richtig formatierte Strings. –

Antwort

1

Mit Data URI, (see browser support) ist es möglich. Das Format wie beschrieben ist

data:[<mime type>][;charset=<charset>][;base64],<encoded data>. 

Sie nicht zu base64 benötigen Zeichenfolge codieren, wenn Sie bestimmte Zeichen, die nicht entgangen sein könnte. Snippet Erfüllung Ihrer Bedürfnisse:

var iframe = document.getElementById('iframe'), 
 
    htmlStr = "<html><body><h1>Hell World</h1></body></html>"; 
 
iframe.src = 'data:text/html,'+htmlStr;
<iframe id="iframe" src="blank:"></iframe>

0

Sicher, es gibt ein paar verschiedene Mietoptionen.

Via srcdoc (asynchroner):

iframe.srcdoc = html; 

Via Daten URI (asynchroner):

iframe.src = 'data:text/html;charset=utf-8,' + escape(html); 

Via document.write (syncronous und arbeitet in sehr alten Browsern):

var idoc = iframe.contentWindow.document; 
idoc.write(html); 
idoc.close(); 
Verwandte Themen