用js判断用户浏览器是否是XP SP2的IE6


Posted in Javascript onMarch 08, 2007

由于Windows XP的补丁SP2,对IE6的安全性也做了很多的提升,使得有不少原来我们可以使用的功能,会变得很奇怪甚至歇菜掉:(。特别是弹出窗口、模态窗口和Popup窗口等受的影响相当大。那么我能不能判断用户使用的IE6是普通IE6(IE6sp1)还是IE6+xp sp2呢? 

    下面是两个比较典型的IE6浏览器UserAgent字段: 

    1、Windows XP + SP1 (NT 5.1) 
Connection: Keep-Alive 
Accept: */* 
Accept-Encoding: gzip, deflate 
Accept-Language: zh-cn 
Host: zhilee.aehk.com 
Referer: http://www.cnblogs.com/birdshome/archive/2005/03/11/113723.html 
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) 
    2、Windows 2003 + SP1 (NT 5.2) 
Connection: Keep-Alive 
Accept: */* 
Accept-Encoding: gzip, deflate 
Accept-Language: zh-cn 
Host: zhilee.aehk.com 
Referer: http://www.cnblogs.com/bluefee/archive/2005/03/28/127455.html 
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322) 
UA-CPU: x86 
    这两个UA string和普通的UA string最大区别就是,里面多了一个"SV1"标志,这个是什么意思呢?SV1的本意是"Security Version 1",它就是用来专门标注使用IE6浏览器的用户使用的操作系统是否是XPSP2或WS03SP1。 

    既然XPSP2和WS03SP1对IE6有影响,为什么不提升IE的版本号,而是单独使用SVX标注呢?IE开发团队是这么解释的,他们说虽然这两个操作系统的补丁对IE6的设置有影响,但是并没有修改IE6本身的任何功能,比如呈现、DHTML和DOM等。所以这样的一些安全设置不适合升级IE本身的版本号。 

    在后续的IE版本中,SVX标志可能会被移除,所以目前我们使用UA string检测操作系统的SP版本,只是一个临时的办法。 

var ua = navigator.userAgent; 
if ( ua.indexOf("SV1") != -1 ) 

    if ( ua.indexOf("NT 5.1") != -1 ) 
    { 
        // windows xp + sp2 
    } 
    else if ( ua.indexOf("NT 5.2") != -1 ) 
    { 
        // windows 2003 + sp1 
    } 
    else 
    { 
        // wrong user agent string 
    } 

Javascript 相关文章推荐
IE和Firefox在JavaScript应用中的兼容性探讨
Apr 01 Javascript
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
Sep 27 Javascript
js分页代码分享
Apr 28 Javascript
javascript的创建多行字符串的7种方法
Apr 29 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
Oct 08 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
May 19 Javascript
jQuery插件pagination实现无刷新分页
May 21 Javascript
JavaScript闭包和回调详解
Aug 09 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
Nov 06 Javascript
用Golang运行JavaScript的实现示例
Nov 25 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
Aug 15 Javascript
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
在IE模态窗口中自由查看HTML源码的方法
Mar 08 #Javascript
encode脚本和normal脚本混用的问题与解决方法
Mar 08 #Javascript
IE7提供XMLHttpRequest对象为兼容
Mar 08 #Javascript
使用onbeforeunload属性后的副作用
Mar 08 #Javascript
HTML中不支持静态Expando的元素的问题
Mar 08 #Javascript
使用TextRange获取输入框中光标的位置的代码
Mar 08 #Javascript
获取JavaScript用户自定义类的类名称的代码
Mar 08 #Javascript
You might like
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
一个程序下载的管理程序(四)
2006/10/09 PHP
PHP编程与应用
2006/10/09 PHP
MySQL授权问题总结
2007/05/06 PHP
PHP 面向对象实现代码
2009/11/11 PHP
深入php self与$this的详解
2013/06/08 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
js停止输出代码
2008/07/20 Javascript
学习ExtJS border布局
2009/10/08 Javascript
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
Django处理文件上传File Uploads的实例
2018/05/28 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
python框架django项目部署相关知识详解
2019/11/04 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
数据库专业英语
2012/11/30 面试题
简单的JAVA编程面试题
2013/03/19 面试题
音乐学个人的自荐书范文
2013/11/26 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
优秀毕业生找工作自荐信
2014/06/23 职场文书
奶茶店创业计划书
2014/08/14 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
竞选稿之小学班干部
2019/10/31 职场文书