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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容