window.open()遇到的坑

window.open()遇到的坑

在做一个弹出新窗口打开的需求,发现window.open()被拦截了.不能直接跳出到新的界面,需要用户手动放行。 chrom浏览器出现的就是下面这种效果:

解决方案:需要在chrom高级设置-内容设置-允许弹出式窗口和重定向

下面2种是用户手动触发的:

First:

 
    
复制代码

结果:当用户手动点击按钮的时候,直接打开个新窗口

Sencond:

 
    
复制代码

结果:浏览器如果判断到这个跳出是异步的,从而会拦截掉页面的跳出的操作

解决方案: 同步操作换下:采用创建a标签,触发点击操作

 
   
复制代码

异步操作下:先通过用户点击打开新窗口,然后再对页面进行重定向

   
   
复制代码

需要注意的是:window.open()的返回值,如果被浏览器拦截的情况下, window.open() 的返回值就是null,这时候需要加个校验,不然会语法错误。

文章是引用了AlenQi的,自己亲测了下,非常感谢。下面是链接地址 https://juejin.im/post/5a813bc1f265da4e9a4959ff

转载于:https://juejin.im/post/5c7fe7f151882546c846c725

你可能感兴趣的:(window.open()遇到的坑)