guan

  博客园  :: 首页  :: 新随笔  :: 联系 ::  :: 管理

 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。
posted on 2017-04-25 14:03  麦田里的包米  阅读(203)  评论(0)    收藏  举报