[工作问题总结]window.open导致IE自动关闭问题总结[2]

6 篇文章 0 订阅

------------------------------ASP.Net+Android+IO开发 .Net培训 期待与您交流!------------------------------

 

先总结下曾今在之前的window.open导致IE自动关闭问题总结[1]中总结到,仅走前台不会导致浏览器的禁止弹出......

但在我们真正开发的时候,不得不走后台怎么办呢? 我就遇到这个问题.

先将自己的解决方法总结下,但我并不承认是多么好的方法,但至少还没有测出什么bug来.

 

走ajax,但如果在ajax中的success和error中写代码的话,及会造成浏览器的禁止弹出......所以 我稍微走了捷径.

(1)后台自动产生html普通按钮代码

foreach (DataRow dr in dsEmpInfo.Tables["Employee"].Rows)
				{
					var btnEmp = new System.Web.UI.HtmlControls.HtmlInputButton();//普通按钮
					btnEmp.Attributes.Add("id", "");
					btnEmp.Attributes.Add("value", "");
					btnEmp.Attributes.Add("class", "");
					btnEmp.Attributes.Add("onclick", "var result = funSetSession('" + (string)dr["EmpAccount"] + "');if(result) {funOpenUnitFrame('" + (string)dr["EmpAccount"] + "');}else{funReturn();}");
					divEmp.Controls.Add(btnEmp);
				}

重点代码在加onclick方法:先走funSetSession方法,如果返回true则走funOpenUnitFrame这个方法否则走funReturn

 

(2)前台funSetSession方法,里面走ajax

function funSetSession(empAccount) {
			var result = false;
			var ajaxUrl = "EmpLoginPortal.aspx?ajaxMethod=SetEmpAccount&EmpAccount=" + empAccount;
			$.ajax({
				type: "POST", //提交方式
				url: ajaxUrl,
				dataType: "text", //类型
				async: false,
				success: function (data) {
					if (data == "SUCCESS") {
						result = true;
					} else {}
				},
				error: function () {}
			})
			return result;
		}


(3)funSetSession方法 返回true则window.open,此方法还能保证一直仅弹出一个win

function funOpenUnitFrame(empAccount) {
			if (win) {
				if (!win.closed) {
					win.close();
				}
				win = window.open(WINDOW_URL, WINDOW_NAME, WINDOW_ATTRS);
			} else {
				win = window.open("", WINDOW_NAME, WINDOW_ATTRS);
				if (win.location.href === "about:blank") {
					win = window.open(WINDOW_URL, WINDOW_NAME, WINDOW_ATTRS);
				} else {
					win.close();
					win = window.open(WINDOW_URL, WINDOW_NAME, WINDOW_ATTRS);
				}
			}
		}


(4)funSetSession方法 返回false则返回首页

function funReturn() {
			var LoginPortal = './GrandsysLoginPortal.aspx';
			window.top.location.replace(LoginPortal);
		}


window.open 真心挺讨厌的,貌似<a>的href也可以有window.open的功能,但没研究过......以后有机会总结......

 

------------------------------ASP.Net+Android+IO开发 .Net培训 期待与您交流!------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值