美文网首页
window.open(url)新窗口打开链接被浏览器拦截解决方

window.open(url)新窗口打开链接被浏览器拦截解决方

作者: Greens_dbd2 | 来源:发表于2021-05-18 15:24 被阅读0次

    在浏览器的安全机制里,非用户触发的window.open(url)来打开新的链接方法是会被拦截的。(window.open(url,”_self”)改变当前的窗口是可以生效的)。

    只有直接使用js调用 window.open(url); 尤其是ajax请求回调或异步回调之后调用,打开新窗口时是会被拦截。常见解决方法:

    1. 在超链接里加入onclick事件

    <a href="javascript:void(0)" onclick="window.open(url)"></a>

    2. 延迟打开

    setTimeout('window.open(url);', 500); 注意, 延迟时间不能太短 否则也会被拦截

    3. 通过JS打开新窗口会被拦截,换一种实现方式

    var newwindow=window.open('_blank'); // 先打开页面

    newwindow.location='http://www.xxxx.com'; // 后更改页面地址

    以下是js的点击触发事件,是用户触发,所以不会被拦截:

    ele.onClick = function() {

        window.open('http://xxx.com')

    });

    相关文章

      网友评论

          本文标题:window.open(url)新窗口打开链接被浏览器拦截解决方

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