为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只名叫tom的猫 2023-07-20 17:39:27
是否可以强制在已发生打开弹出窗口操作的 iframe 中打开弹出窗口?我有一个 VueJs 应用程序,它在 iframe 内显示一个网站,并且不希望该应用程序打开新窗口。但仅用沙箱阻止所有弹出窗口也是不可接受的,因为有些弹出窗口包含关键功能。因此,我正在寻找任何方法来“强制”target="_blank"网页上的链接。我知道没有标准的方法可以做到这一点,但愿意接受有关如何解决此问题的任何建议。也许有一种方法可以禁用浏览器打开新窗口和劫持调用的能力。期待您的答复。
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

大多数情况下,这种能力要么全有,要么全无。由于它是 中的不同站点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:让资源打开模式窗口。


查看完整回答
反对 回复 2023-07-20
  • 1 回答
  • 0 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信