重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍了Ajax如何实现请求成功后打开新窗口地址,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
成都创新互联公司专注于定结网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供定结营销型网站建设,定结网站制作、定结网页设计、定结网站官网定制、微信小程序开发服务,打造定结网络公司原创品牌,更为您提供定结网站排名全网营销落地服务。
关键代码如下所示:
jQuery.ajax({ "type":"post", "url":"http://www.baidu.com", "success":function(rel){ if(rel.isSuccess){ window.open(rel.url,"_blank"); } } });
这个url请求成功后window.open(rel.url,"_blank");会被浏览器拦截,无法打开新窗口,如果把window.open()放在ajax外面,问题就迎刃而解,代码如下:
var result=""; jQuery.ajax({ "type":"post", "url":"http://www.baidu.com", "success":function(rel){ if(rel.isSuccess){ result=rel.url; //window.open(rel.url,"_blank"); } } }); if(result.length>0){ window.open(result,"_blank"); }
下面看下在Ajax响应之后打开新窗口
最近的开发中有一个功能,点击一个链接之后,要判断当前的用户是否登录,没有登录的话,需要弹出一个登录对话框,用户登录之后,再在新的窗口(标签)中打开链接指向的Url。
不多说,直接贴出代码:
$(document).delegate("a", "click", function () { var actionUrl = $(this).attr("href"); var ssoAction = function () { window.open(actionUrl, '_blank'); }; if (isLogin()) { ssoAction(); } else { popup.show({login:function () { $.ajax({ type: "post", dataType: "json", url: "/Account/Login", data: $("frmLogin").serialize(), //发送方式改为同步,避免弹出页面被浏览器拦截 async: false, success: function (oData) { ssoAction(); } }); }); } return false; });
重点:需要使用同步提交,使用异步提交,callback里面打开新窗口(标签),会被浏览器认为是恶意行为。
感谢你能够认真阅读完这篇文章,希望小编分享的“Ajax如何实现请求成功后打开新窗口地址”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!