window.open()可以实现除用a标签以外来实现打开新窗口! 最近本来好好的弹出窗口,结果被浏览器无情的给拦截了!
方法一:
$("#btn").on("click",function(){ var goto = window.open(); $.getJSON(URL,data,function(data,state){ if(state=='success'){ goto.location.href = 'http://www.cnblogs.com/garfieldzhong/' }else{ alert('请求失败!'); } }) });
弊端:那就是当异步请求失败了,也依然会有一个新窗口打开,因为它的原理很明显,是一开始打开一个空的新窗口,然后改变新窗口的url,以此来实现跳转。
方法二:
$("#btn").on("click",function(){ $.ajaxSettings.async = false; //请求前设置为同步请求 $.getJSON(URL,data,function(data,state){ $.ajaxSettings.async = true;//切记,请求完成之后要设置回异步 if(state=='success'){ goto.location.href = 'http://www.cnblogs.com/garfieldzhong/' }else{ alert('请求失败!'); } }) });
关键词就是$.ajaxSettings.async,设置了ajax请求的方法,请求前为同步请求,这样就能避免被浏览器拦截,但是,不推荐使用同步方法,所以,当此次ajax/getjson完了之后要把值改回 true。