是否可以强制在已发生打开弹出窗口操作的 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
:让资源打开模式窗口。
添加回答
举报
0/150
提交
取消