gpt4 book ai didi

javascript - firefox 沙箱 iframe 位置在不应该更改的时候更改

转载 作者:太空狗 更新时间:2023-10-29 13:49:41 25 4
gpt4 key购买 nike

当使用 html5 沙盒 iframe 时,我希望 iframe 无法更改其位置:

<iframe sandbox="allow-forms allow-popups allow-pointer-lock allow-same-origin allow-scripts" class="iframe visible" src="thesource.html" width="100%" scrolling="auto" frameborder="0"></iframe>

它在 Chrome 中运行良好,但在 Firefox 中,沙盒 iframe 仍然可以重定向。

这是一个known bug但我该如何修补它,以便所有 Firefox 用户都不会被重定向?

最佳答案

例子:

有额外限制的:

<iframe src="demo_iframe_sandbox.htm" sandbox=""></iframe>

Internet Explorer 10、Firefox、Chrome 和 Safari 支持沙箱属性。

注意:Internet Explorer 9 及更早版本或 Opera 不支持 sandbox 属性。

定义和用法

如果指定为空字符串 (sandbox=""),则 sandbox 属性会对内联框架中的内容启用一组额外限制。

沙盒属性的值可以是空字符串(应用所有限制),也可以是将删除特定限制的以空格分隔的预定义值列表。

HTML 4.01 和 HTML5 的区别

The sandbox attribute is new in HTML5.

语法

<iframe sandbox="value">

属性值

  1. ""=> 应用以下所有限制
  2. allow-same-origin => 允许将 iframe 内容视为与包含文档来自同一来源
  3. allow-top-navigation => 允许 iframe 内容从包含的文档中导航(加载)内容
  4. allow-forms => 允许表单提交
  5. allow-scripts => 允许脚本执行

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

要将内容写入 IFRAME,请获取对框架文档的引用并将其写入。这样做将需要您设置允许同源沙箱标志。

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

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

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

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

关于javascript - firefox 沙箱 iframe 位置在不应该更改的时候更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21566267/

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