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

2017-08-02  本文已影响2223人  ppmoon

使用js跳转的过程当中遇到了window.open()被chrome内核的浏览器拦截的问题。

原因分析

出于安全考虑chrome浏览器会拦截掉非用户操作的行为,比如直接使用js跳转链接,这个行为不是用户的直接行为就会被chrome浏览器屏蔽掉。
比如我有一个click的事件

click(){
其他操作~~~
window.open()
}

window.open()不是第一个执行的方法,它就会被屏蔽掉。

解决方案

解决方案很简单,执行函数的时候,比如click,让window.open()先执行,打开一个空的窗口

var winHandler = window.open('', '_blank')

然后再执行

winHandler.location.href = 'http://www.baidu.com'

在新打开的窗口当中读取网页内容。
这样就可以打开新窗口,并且不被chrome拦截了。

上一篇下一篇

猜你喜欢

热点阅读