【岁月留声(Javascript)】解决ie6 sp2/sp3版本兼容问题

在开发的过程中,发现window.showModalDialog这种方式打开窗口的话,会出现新窗口会话丢失的情况,这个情况在ie6中sp2和sp3也有区别,在sp3中session是可以传入的,但到了sp2或者sp1版本的ie6浏览器就会出现会话失效的提示。

上网查了一下,发现低版本的ie6 使用window.showModalDialog方法的时候新窗口无法将主窗口中的sessionID给传入导致的,而在sp3以及后续版本中这个问题已经解决掉了。

主要的方法是:

在使用window.showModalDialog打开新窗口的时候将window写上

window.showModalDialog(url,
						window, 
						"下载",
						"resizable:yes;
						dialogHeight:1px;
						dialogWidth:1px;
						status=no;
						scroll=yes;");

在打开的窗口中点击链接的时候先通过一个过滤的方法来跳转:

function openUrl(urlstr){
      var openobj = window;
      if(typeof(window.dialogArguments) == 'object'){    
             openobj = window.dialogArguments;                 
      }
      openobj.open(urlstr,"_blank");
}

在跳转之前先获得传入的主窗口window对象,这个方法可以统一解决ie6的这个问题。

下面将通过js来获取ie6和其他的ie版本

var ua = navigator.userAgent; 
if (ua.indexOf("SV1")!=-1){ 			//是否ie6
	if(ua.indexOf("NT 5.1")!=-1){
		// window xp + sp1, sp2
	}else if (ua.indexOf("NT 5.2")!=-1){ 
		// windows 2003 + sp1  
  	}else{ 								
		//ie6的其他版本
	} 
}else{									
	//ie后续版本 ie7,ie8
}

上面第一个判断“SV1”, SV1的本意是"security version 1",它就是用来专门标注使用ie6浏览器的用户使用的操作系统是否是window xp sp2或window server 2003 sp1
在后续的ie版本中,SV标志可能会被移除。

所以现在是通过这个判断来判断ie6版本。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kida 的技术小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值