敲黑板-在chrome的安全机制里,非用户触发的window.open会被拦截
例如:
let btn = $(".btn");
btn.click(function () {
// 不会被拦截
window.open('http://www.baidu.com');
});
$.ajax({
url: 'xxx',
success: function(){
// 这里会被拦截
window.open('http://www.baidu.com');
}
})
这两个结果产生的原因则是,后者不是用户触发,而前者是用户点击之后触发。 所以,解决的办法:
let newPage = window.open();
$.ajax({
url: 'xxx',
success: function(){
// 这里会被拦截
newPage.location.href = 'http://www.baidu.com';
}
})