是否可以在iframe中打开弹出窗口

时间:2020-11-10 07:44:52

标签: javascript html css vue.js

是否可以在已执行打开弹出窗口操作的iframe中强制弹出窗口打开?

我有一个VueJs应用程序,该应用程序在iframe中显示一个网站,并且不希望该应用程序打开新窗口。但是也不能接受仅用沙盒阻止所有弹出窗口,因为其中一些包含关键功能。

因此,我正在寻找以任何方式“强制” target="_blank"到网页上的链接。 我知道没有标准的方法可以这样做,但是任何建议都可以解决。

也许有一种方法可以禁用浏览器打开新窗口并劫持呼叫的功能。

期待您的回答。

1 个答案:

答案 0 :(得分:1)

大多数情况下,该功能为全有或全无。由于它是iframe中的另一个站点,因此您可能无权访问iframe内容,因此无法控制其中的链接。

iframe具有sandbox属性,您可以向其中添加allow-popups选项

  • allow-popups:允许弹出窗口(例如window.open()target="_blank"showModalDialog())。如果不使用此关键字,则弹出窗口将以静默方式无法打开。

如:

<iframe ... sandbox="allow-popups"></iframe>

还有:

  • allow-popups-to-escape-sandbox:让沙盒文档打开新窗口,而这些窗口不会继承沙盒。例如,这可以安全地将广告沙箱化,而不必对广告链接到的页面施加相同的限制。
  • allow-modals:让资源open modal windows