美文网首页
JS window.open()拦截问题解决方案

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

作者: ppmoon | 来源:发表于2017-08-02 20:39 被阅读2223次

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

    相关文章

      网友评论

          本文标题:JS window.open()拦截问题解决方案

          本文链接:https://www.haomeiwen.com/subject/qroitxtx.html