在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也不会拦截。