ajax回调打开新窗体被浏览器拦截

 1 function click_fun(){ 2  3  $.ajax({ 4 url: ${pageContext.request.contextPath}/action/, 5 type: post, 6 dataType: json, 7 data: data, 8  success: function (data) { 9 window.open("www.baidu.com");//被拦截10  },11  error:function(){12 13  }14  });15 }

  被拦截原因:打开新窗体只能在点击事件内触发,点击事件内的回调函数内打开窗体会被拦截,浏览器会认为是广告弹窗之类的代码

解决方案:

 1 function click_fun_new(){ 2 var tempwindow=window.open();//先打开临时窗体,由于是点击事件内触发,不会被拦截 3  $.ajax({ 4 url: ${pageContext.request.contextPath}/action/, 5 type: post, 6 dataType: json, 7 data: data, 8  success: function (data) { 9 tempwindow.location = "www.baidu.com";//当回调的时候更改临时窗体的路径10  },11  error:function(){12 tempwindow.close();//回调发现无需打开窗体时可以关闭之前的临时窗体13  }14 });

 

相关文章