解决ie6 sp2/sp3版本兼容问题
2016-05-11 08:38
260 查看
在开发的过程中,发现window.showModalDialog这种方式打开窗口的话,会出现新窗口会话丢失的情况,这个情况在ie6中sp2和sp3也有区别,在sp3中是可以session是可以传入的,但到了sp2或者sp1版本的ie6浏览器就会出现会话失效的提示。
上网查了一下,发现低版本的ie6 使用window.showModalDialog方法的时候新窗口无法将主窗口中的sessionID给传入导致的,而在sp3以及后续版本中这个问题已经解决掉了。
主要的方法是:
在使用window.showModalDialog打开新窗口的时候将window写上
在打开的窗口中点击链接的时候先通过一个过滤的方法来跳转:
在跳转之前先获得传入的主窗口window对象,这个方法可以统一解决ie6的这个问题。
下面是写一下通过js来获取ie6和其他的ie版本
上面第一个判断“SV1”, SV1的本意是”security version 1”,它就是用来专门标注使用ie6浏览器的用户使用的操作系统是否是window xp sp2或window server 2003 sp1
在后续的ie版本中,SV标志可能会被移除。
所以现在先是通过这个判断来判断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版本。
相关文章推荐
- Android Manifest 用法
- Android学习笔记(二九):嵌入浏览器
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 回顾 Firefox 历史
- 小白观察:微软释放出其基于 Chromium 的 Edge 浏览器
- 浏览器 cookie 限制
- 玩转浏览器IE7的5个顶级使用技巧
- 字符集导致的浏览器跨站脚本攻击分析
- 更改IE浏览器的图标
- 如何创建ajax对象并兼容多个浏览器
- css ie6 ie7 ff的CSS hack使用技巧
- CSS 浏览器的等宽空格问题解决
- 区分IE6,IE7,firefox的CSS hack
- PHP检测用户是否关闭浏览器的方法
- PHP限制页面只能在微信自带浏览器访问的代码
- asp.net实现获取客户端详细信息
- ASP.NET实现推送文件到浏览器的方法
- 多种浏览器清除缓存的方法小结
- Dom与浏览器兼容性说明