用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 相关文章推荐
表单提交验证类
Jul 14 Javascript
jQuery Tab插件 用于在Tab中显示iframe,附源码和详细说明
Jun 27 Javascript
javascript基础之查找元素的详细介绍(访问节点)
Jul 05 Javascript
uploadify在Firefox下丢失session问题的解决方法
Aug 07 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
Sep 26 Javascript
基于javascript实现样式清新图片轮播特效
Mar 30 Javascript
ES6学习之变量的解构赋值
Feb 12 Javascript
详解如何在Vue2中实现组件props双向绑定
Mar 29 Javascript
angularjs实现的购物金额计算工具示例
May 08 Javascript
JS基于ES6新特性async await进行异步处理操作示例
Feb 02 Javascript
Angular8基础应用之表单及其验证
Aug 11 Javascript
详解JavaScript 中的批处理和缓存
Nov 19 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 Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
php 注释规范
2012/03/29 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
PHP7 foreach() 函数修改
2021/03/09 PHP
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
js实现时钟定时器
2020/03/26 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
python+Django+apache的配置方法详解
2016/06/01 Python
Python Subprocess模块原理及实例
2019/08/26 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
Python restful框架接口开发实现
2020/04/13 Python
pandas实现导出数据的四种方式
2020/12/13 Python
浅析python连接数据库的重要事项
2021/02/22 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
三个Unix的命令面试题
2015/04/12 面试题
证婚人搞笑证婚词
2014/01/10 职场文书
竞聘书模板
2014/03/31 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
在职证明范本
2015/06/15 职场文书
详解Redis的三种常用的缓存读写策略步骤
2022/05/06 Redis
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript