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 });