这次给大家带来怎么设置Ajax请求成功即刻打开新窗口,设置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校验注册的用户名是否存在
ajax向服务器发送数据类型步奏详解
以上就是怎么设置Ajax请求成功即刻打开新窗口的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2775497.html