使用JavaScript将HTML中的字符串加载到iframe中

时间:2016-08-02 21:58:09

标签: javascript html iframe construct-2

我有一串HTML标签,我可以随时添加或更改。

"<html><body><script language="javascript" src=""></script></body></html>"

是否可以在运行时将该字符串加载到Iframe中,就像它是HTML文件一样?

这是针对Construct 2.我有一个可以从url加载HTML的对象,它也可以插入HTML,然后运行脚本,但不是原样。

3 个答案:

答案 0 :(得分:2)

使用Data URI,(see browser support)这是可能的。所描述的格式是

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

除非字符串具有特定字符,否则您可能不需要对字符串进行base64编码。此代码段满足您的需求:

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>

答案 1 :(得分:2)

当然,有几种不同的选择。

通过srcdoc (asyncronous):

iframe.srcdoc = html;

通过数据URI (asyncronous):

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

通过document.write (同步,适用于非常老的浏览器):

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

答案 2 :(得分:0)

你可以用

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

请参阅以下小提琴,了解示例

https://jsfiddle.net/erk1e3fg/