废话不多说,关键代码如下所示:
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里面打开新窗口(标签),会被浏览器认为是恶意行为。
表格如果比较宽,则有可能溢出。 比如有两个div,左和右。如果表格在右边的div中...
2月21日消息外媒 Windows Latest 报道,微软 Windows 10 仍然配备了熟悉的经典控...
本文实例讲述了tp5.1 框架join方法用法。分享给大家供大家参考,具体如下: JOIN...
本文实例为大家分享了jquery实现穿梭框功能的具体代码,供大家参考,具体内容如...
vscode-drawio vscode-drawio 是一款 vscode 插件,支持在 vscode 中画流程图、...
JSP 中使用cache取值出错解决办法 这段时间发现系统取数据过程中,偶尔出现取数...
如果你是一位前端开发工程师,对“跨平台”一词应该不会感到陌生。像常见的前端...
前言 这样的需求很常见:点击页码局部更新页面(非整体刷新),并且产生历史管理...
用isset()和empty()判断下面的变量。 $str = ''; $int = 0 ; $arr = array(); is...
一. 效果演示 1.1、好友右键菜单: 1.2、分组右键菜单: 1.3、群组右键菜单: 二...