使用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拦截了。