在chrome的安全機制裏面,非用戶觸發的window.open方法,是會被攔截的。
例如事件觸發的js是不會被攔截的:
var btn = $('#btn');
btn.click(function () {
...
...
...
//不會被攔截
window.open('http://cssha.com')
});
再例如:
var btn = $('#btn');
btn.click(function () {
//打開一個不被攔截的新窗口
var newWindow = window.open();
$.ajax({
url: 'ooxx',
success: function (url) {
//修改新窗口的url
newWindow.location.href = url;
}
})
});
上面代碼中:用戶點擊一個按鈕,新開一個窗口,同第一個例子原理,這也不會被攔截,緊接着在這個新頁面發起一個ajax請求,然後在成功返回後,修改頁面的URL地址,這樣也是ok的,chrome也不會攔截。