解决window.open打开之后,原窗口不能操作

Posted 三水草肃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决window.open打开之后,原窗口不能操作相关的知识,希望对你有一定的参考价值。

答案: window.open(url, “_blank”, “noreferrer”);

window.open(url, windowName, [windowFeatures]);

  • url

    要加载的url

  • windowName 可选的

    A DOMString的浏览上下文(窗口,指定的名称 或标签)到其中加载指定的资源; 如果名称不指示现有上下文,则会创建一个新窗口并为其指定名称windowName。

  • windowFeatures 可选的

    这些功能包括窗口的默认大小和位置、是否包含工具栏等选项。字符串中不能有空格

    • noopener
      如果设置了此功能,则新打开的窗口将正常打开,只是它无法返回到原始窗口(通过Window.opener - 它返回null)。此外,该window.open()调用还将返回null,因此原始窗口也将无法访问新窗口。这对于防止通过window.open()篡改原始窗口打开的不受信任的站点非常有用, 反之亦然。
      请注意,当noopener使用时,除_top,_self和之外的非空目标名称 _parent都被视为 _blank决定是否打开新窗口/选项卡。

    • noreferrer
      如果设置了此功能,加载位于指定 URL 的内容的请求将被加载,请求referrer设置为 noreferrer; 这可以防止请求将发起请求的页面的 URL 发送到发送请求的服务器。此外,设置此功能还会自动设置 noopener. 有关rel=“noreferrer” 其他详细信息和兼容性信息,请参阅 。Firefoxnoreferrer在 Firefox 68 中引入了支持 。

MDN:https://developer.mozilla.org/en-US/docs/Web/API/Window/open

以上是关于解决window.open打开之后,原窗口不能操作的主要内容,如果未能解决你的问题,请参考以下文章

window.open() 某些情况会被浏览器阻止弹出窗口及解决办法

ajax请求成功后新窗口window.open()被拦截的解决方法

JS window.open()拦截问题解决方案

window open怎样才能在原有窗口中打开新窗口

javascript中用window.open(url)方法打开一个新窗口之后,新窗口已存在,如何让这个新窗口显示?

window.open打开新窗口名写入内容 怎么才能保持新窗口原来的内容