用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 相关文章推荐
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
Nov 30 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
Nov 18 Javascript
用javascript替换URL中的参数值示例代码
Jan 27 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
May 23 Javascript
浅谈JS函数定义方式的区别
Oct 30 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
Oct 20 Javascript
jQuery解析json格式数据示例
Sep 01 jQuery
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
Jan 07 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
Sep 24 Javascript
Vue实现按钮级权限方案
Nov 21 Javascript
使用webpack和rollup打包组件库的方法
Feb 25 Javascript
JavaScript选择器函数querySelector和querySelectorAll
Nov 27 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
php抓即时股票信息
2006/10/09 PHP
php设计模式  Command(命令模式)
2011/06/17 PHP
php获取汉字首字母的函数
2013/11/07 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
JavaScript中Math对象使用说明
2008/01/16 Javascript
var与Javascript变量隐式声明
2009/09/17 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
JScript实现地址选择功能
2017/08/15 Javascript
JavaScript模块模式实例详解
2017/10/25 Javascript
vux uploader 图片上传组件的安装使用方法
2018/05/15 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
使用Python快速制作可视化报表的方法
2019/02/03 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
2013届毕业生求职信范文
2013/11/20 职场文书
就业意向协议书
2015/01/29 职场文书
2015年全国爱眼日活动小结
2015/02/27 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
独生子女证明范本
2015/06/19 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL