- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试通过创建 iframe 并使用 javascript 或 vbscript 动态构建 iframe 内容来构建用于 Internet explorer 的测试页面。我通常会使用数据:URI,但 IE 阻止了它。
例子。
<iframe sandbox="allow-scripts" src="javascript:document.write('test')"></iframe>
看来 IE 是唯一不允许我通过 javascript:function() src 构建 iframe 内容的浏览器,即使设置了 allow-scripts 沙箱属性。我不想在 iframe 和父窗口之间传递任何信息,也不想设置 allow-same-origin,因为这几乎会破坏沙盒 iframe 的目的。
是否有任何其他方法可以动态构建 iframe 内容而不是 javascript 或数据:src 中的 URI,或通过父窗口中的 javascript,因为由于同源限制,它不能与沙盒 iframe 一起使用?我也不希望必须从外部页面设置内容。
最佳答案
javascript:
是一种奇怪的 URI 协议(protocol)。它适用于某些 上下文,例如 <a href>
,但不是全部 - 例如,窗口的位置不能设置为这样的 URI。 (虽然您可以将 javascript:
URI 分配给 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
关于javascript - 如何在沙盒 iframe (IE11) 中使用 javascript 创建 iframe 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21587846/
我是一名优秀的程序员,十分优秀!