如果不是用户点击而打开的窗口都会被浏览器拦截,包括并不限于
用户点击》访问服务器》服务器返回然后打开新标签或新窗口。
今天就遇到上面的情况,在
button 事件里写的
window.open(),没问题,没有被拦截,但是后来因为业务原因需要修改为:
button事件之后先访问服务器然后返回url并打开新的窗口,这时候就出问题了,被浏览器拦截了。
解决办法:
// 首先打开新的空的窗口,等待被服务器重定向 var w = window.open('_blank'); // Ajax 请求服务器 Ajax.post('getUrl', { zsbh : id }, function(data){ // 根据服务器返回 重定向上面的新窗口 w.location = data.url; });