window.open()如何绕过chrome的弹窗拦截

一.首先,我们要知道哪些弹窗会被 chrome拦截,哪些弹窗不会被拦截

  1.非用户触发的window.open方法,是会被拦截的。

//定义一个按钮
    var btn = $('#btn');
//由用户点击触发按钮
    btn.click(function () {
        $.ajax({
            url: 'ooxx',
            success: function (url) {
          //这里的window.open()方法由 ajax触发 ,不属于用户触发
//打开一个不被拦截的新窗口 var newWindow = window.open(); //修改新窗口的url newWindow.location.href = url; } }) });

  2.用户触发的window.open方法,不会被拦截。

二.如何,避免被拦截

  最简单的方法:让window.open方法被用户触发

  

//定义一个按钮
var btn = $('#btn');
//由用户点击触发按钮
btn.click(function () {

    //打开一个不被拦截的新窗口
    var newWindow = window.open();

    $.ajax({
        url: 'ooxx',
        success: function (url) {

            //修改新窗口的url
            newWindow.location.href = url;
        }
    })
});
原文地址:https://www.cnblogs.com/raymond-yan/p/11820839.html