应用的谷歌浏览器,应用window.open(),测试的时候,发现总是被拦挡,这这里记录下解决的办法。

当非用户触发的window.open()办法时,因为谷歌的平安机制,通常是会被拦挡的,除非人工勾销拦挡。比方上面两个例子:当用户没有间接收回window.open()申请的时候,不是间接调用,而是在回调函数里调用,则会被拦挡。

//不会被拦挡$('#btn').click(function () {    window.open(url)});
$('#btn').click(function () {    $.ajax({        url: 'a/aa',        success: function (url) {            //会被拦挡            window.open(url);        }    })});

解决方案

$('#btn').click(function () {    //关上一个不被拦挡的新窗口    var newWindow = window.open();    $.ajax({        url: 'a/aa',        success: function (url) {            //批改新窗口的url            newWindow.location.href = url;        }    })});

网上找的办法 ,感激网友
原文链接:
https://blog.csdn.net/hongyua...