美文网首页
window.open()

window.open()

作者: Cute_小肥鸡 | 来源:发表于2020-05-07 17:45 被阅读0次

一、window.open()会被部分浏览器拦截的原因:

因为在chrome的安全机制里面,非用户触发的window.open方法,是会被拦截的;

二、什么情况下不会被拦截 或 会被拦截?

$('#btn').click(function () {

    //不会被拦截

    window.open(url)

});

$('#btn').click(function () {

    $.ajax({

        url: 'xxxx.com',

        success: function (url) {

            //会被拦截

            window.open(url);

        }

    })

});

分析原因:

用户没有直接发出window.open请求,而是发出一个ajax请求,window.open方法被放在了ajax的回调函数里,这样的情况就会被拦截了;

三、如何解决“第二点”的拦截问题?

$('#btn').click(function () {

    //打开一个不被拦截的新窗口

    var newWindow = window.open();

    $.ajax({

        url: 'xxxx.com',

        success: function (url) {

            /修改新窗口的url

            newWindow.location.href = url;

        }

    })

});//先在回调函数之前打开新窗口,后再加载url

相关文章

网友评论

      本文标题:window.open()

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