首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在沙盒iframe (IE11)中使用javascript创建iframe内容?

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

Stack Overflow用户
提问于 2014-02-06 04:30:40
回答 2查看 4K关注 0票数 6

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

举例说明。

代码语言:javascript
复制
<iframe sandbox="allow-scripts" src="javascript:document.write('test')"></iframe>

IE似乎是唯一一个不允许我通过javascript:function() src构建iframe内容的浏览器,即使设置了allow-scripts沙箱属性。我不想在iframe和父窗口之间传递任何信息,也不想设置allow- am since设置,因为这几乎违背了创建沙盒iframe的目的。

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

EN

回答 2

Stack Overflow用户

发布于 2014-02-06 04:44:16

javascript:是一种奇怪的URI协议。它适用于某些环境,如<a href>,但不是所有环境-例如,窗口的位置不能设置为这样的URI。(虽然您可以将javascript: URI分配给window.location作为一种非常间接的运行脚本的方式,但是窗口的位置不会一直设置为该值。)

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

代码语言:javascript
复制
<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/

票数 1
EN

Stack Overflow用户

发布于 2014-02-06 08:11:07

HTML5为此定义了"srcdoc“属性

代码语言:javascript
复制
<iframe seamless sandbox srcdoc="<p>Yeah, you can see it <a href=&quot;/gallery?mode=cover&amp;amp;page=1&quot;>in my gallery</a>."></iframe>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21587846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档