带有`target="_blank"`的沙箱iFrame无法打开新标签页或窗口。

6

我刚刚创建了一个带有 sandbox 属性的 iFrame。每当我尝试使用 target="_blank"target="_top" 打开链接,或者尝试使用 window.open() 时,什么都不会发生。

这是我的代码:

<iframe src="http://www.google.com/"
  sandbox="allow-top-navigation allow-same-origin allow-forms allow-scripts">

    Apparently your browser doesn't support iFrames!

</iframe>
1个回答

9

据称,Chrome允许设置一个名为allow-popups的未记录的沙盒属性。此属性也支持Firefox,并且是W3C的候选推荐。(链接)

allow-popups允许沙盒框架在新窗口或选项卡中打开链接,当框架尝试使用target="_top"打开链接时,浏览器将在新标签页或窗口中打开URL。


2
allow-popups已经被记录/指定,请参见http://www.w3.org/TR/html5/browsers.html#sandboxing。 - CBroe
我没有看到它在那里提到。也许我误解了,因为它们很难读懂。 - A.M.K
我猜这是“沙盒辅助浏览上下文标志”。我会编辑我的答案。 - A.M.K
请看下面的列表,了解用户代理如何解析沙盒标志,在第3步中,它说:“将以下标志添加到输出中:[...]沙盒辅助导航浏览上下文标志,除非tokens包含allow-popups关键字。” - CBroe
好的,明白了。谢谢! - A.M.K
1
Chrome也支持"allow-popups-to-escape-sandbox" - Yibo Yang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接