javascript - js新开窗口被chrome拦截,怎么破?
阿神
阿神 2017-04-10 14:40:42
0
2
592

window.open新开一个窗口,在chrome中会被拦截。这个我在亚马逊一次充值时,也遇到过。

这种情形,在异步处理中比较常见。

stackoverflow上给出一个解决办法,就是:

// 异步处理前
var tab = window.open('about:blank');
//异步处理后
$.post(action,data).done(function(res){
    if(res.state==='success'){
        tab.location = res.result.url;
    }
});

但是我有一个需求,就是我需要在异步处理成功后,才进行新开页面,失败了,就不新开页面了。
以上的代码则无论成功与否,异步处理前,就已经新开窗口了。

如何破?

阿神
阿神

闭关修行中......

全員に返信(2)
迷茫

在找到解决方案前,可提醒用户将网站添加弹出窗口白名单

いいねを押す +0
左手右手慢动作

如果ajax成功就赋值url,如果不成功就close();
例如:
var newWin = window.open('about:blank');
$.ajax({

type: 'get',
url: 'suibian',
success: function() {
    newWin.location.href = 'http://liehu.cmcm.com/';
},
error: function() {
    newWin.close();
}

});

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート