应用的谷歌浏览器,应用 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…