用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 相关文章推荐
JScript的条件编译
May 29 Javascript
javascript高亮效果的二种实现方法
Sep 14 Javascript
JS实现div内部的文字或图片自动循环滚动代码
Apr 19 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
Aug 17 Javascript
js实现无限级树形导航列表效果代码
Sep 23 Javascript
Listloading.js移动端上拉下拉刷新组件
Aug 04 Javascript
JS关闭窗口时产生的事件及用法示例
Aug 20 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
Nov 08 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
May 15 Javascript
Jquery动态列功能完整实例
Aug 30 jQuery
纯 JS 实现放大缩小拖拽功能(完整代码)
Nov 25 Javascript
vue绑定数字类型 value为数字的实例
Aug 31 Javascript
在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
ThinkPHP的URL重写问题
2014/06/22 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
laravel-admin 中列表筛选方法
2019/10/03 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
JS类的封装及实现代码
2009/12/02 Javascript
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
2010/03/12 Javascript
js几个验证函数代码
2010/03/25 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
微信小程序商城项目之购物数量加减(3)
2017/04/17 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
原生JS实现小小的音乐播放器
2017/10/16 Javascript
详解webpack运行Babel教程
2018/06/13 Javascript
python列表操作实例
2015/01/14 Python
简单介绍Python中的decode()方法的使用
2015/05/18 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
django settings.py 配置文件及介绍
2019/07/15 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
优秀的毕业生的自我评价
2013/12/12 职场文书
个人借款担保书
2014/04/02 职场文书
新学期教师寄语
2014/04/02 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python
django中websocket的具体使用
2022/01/22 Python
oracle重置序列从0开始递增1
2022/02/28 Oracle
一条 SQL 语句执行过程
2022/03/17 MySQL
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle