如何在沙盒 iframe (IE11) 中使用 javascript 创建 iframe 内容?

2024-02-11

我正在尝试通过创建 iframe 并使用 javascript 或 vbscript 动态构建 iframe 内容来构建在 Internet Explorer 中使用的测试页面。我通常会使用 data: URI,但 IE 会阻止它。

例子。

<iframe sandbox="allow-scripts" src="javascript:document.write('test')"></iframe>

看来 IE 是唯一不允许我通过 javascript:function() src 构建 iframe 内容的浏览器,即使设置了allow-scripts 沙箱属性。我不想在 iframe 和父窗口之间传递任何信息,并且不想设置 allowed-same-origin,因为它几乎会破坏沙盒 iframe 的目的。

除了 src 中的 javascript 或 data: URI 或通过父窗口中的 javascript 之外,是否还有其他方法可以动态构建 iframe 内容,因为由于同源限制,它无法与沙盒 iframe 一起使用?我也不想从外部页面设置内容。


javascript:是一种奇怪的URI协议。它适用于some上下文,例如<a href>,但不是全部 - 例如,窗口的位置不能设置为这样的 URI。 (虽然您可以分配一个javascript: URI to window.location作为运行脚本的一种真正迂回的方式,窗口的位置不会保持设置为该值。)

要将内容写入 IFRAME,请获取对框架文档的引用并向其写入。这样做需要您设置allow-same-origin沙箱标志。

<iframe id="myframe" sandbox="allow-scripts allow-same-origin" src="about:blank"></iframe>

var frame = document.getElementById("myframe");
var fdoc = frame.contentDocument;

fdoc.write("Hello world"); // or whatever

实例:http://jsfiddle.net/wUvrF/1/ http://jsfiddle.net/wUvrF/1/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在沙盒 iframe (IE11) 中使用 javascript 创建 iframe 内容? 的相关文章

随机推荐