用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 相关文章推荐
关于javascript中this关键字(翻译+自我理解)
Oct 20 Javascript
JavaScript更改字符串的大小写
May 07 Javascript
js控制多图左右滚动切换效果代码分享
Aug 26 Javascript
Position属性之relative用法
Dec 14 Javascript
基于JavaScript代码实现pc与手机之间的跳转
Dec 23 Javascript
bootstrap网格系统使用方法解析
Jan 13 Javascript
canvas绘制环形进度条
Feb 23 Javascript
干货!教大家如何选择Vue和React
Mar 13 Javascript
JS检测window.open打开的窗口是否关闭
Jun 25 Javascript
Vue实现带进度条的文件拖动上传功能
Feb 23 Javascript
详解vue引入子组件方法
Feb 12 Javascript
使用js原生实现年份轮播选择效果实例
Jan 12 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时间戳转换的示例
2014/03/31 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
DHTML Slide Show script图片轮换
2008/03/03 Javascript
学习ExtJS accordion布局
2009/10/08 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
Seajs源码详解分析
2019/04/02 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
python对url格式解析的方法
2015/05/13 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
pymysql模块的使用(增删改查)详解
2019/09/09 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
纪念建党演讲稿范文
2014/01/13 职场文书
装修协议书范本
2014/04/21 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
法律专业自荐信
2014/06/03 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
Golang表示枚举类型的详细讲解
2021/09/04 Golang