gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 15:14:09 25 4
gpt4 key购买 nike

我正在尝试通过创建 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

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

关于javascript - 如何在沙盒 iframe (IE11) 中使用 javascript 创建 iframe 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21587846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com