是否可以在已执行打开弹出窗口操作的iframe中强制弹出窗口打开?
我有一个VueJs应用程序,该应用程序在iframe中显示一个网站,并且不希望该应用程序打开新窗口。但是也不能接受仅用沙盒阻止所有弹出窗口,因为其中一些包含关键功能。
因此,我正在寻找以任何方式“强制” target="_blank"
到网页上的链接。
我知道没有标准的方法可以这样做,但是任何建议都可以解决。
也许有一种方法可以禁用浏览器打开新窗口并劫持呼叫的功能。
期待您的回答。
答案 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。