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

 更新时间:2007年03月08日 00:00:00   作者:  
由于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 
    } 

相关文章

  • layer扩展打开/关闭动画的方法

    layer扩展打开/关闭动画的方法

    今天小编就为大家分享一篇layer扩展打开/关闭动画的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • Javascript中暂停功能的实现代码

    Javascript中暂停功能的实现代码

    Javascript中暂停功能的实现代码...
    2007-03-03
  • js回溯法计算最佳旅行线路代码实例

    js回溯法计算最佳旅行线路代码实例

    这篇文章主要介绍了js回溯法计算最佳旅行线路代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 利用vscode调试编译后的js代码详解

    利用vscode调试编译后的js代码详解

    看了网上好多在vscode上调试javascript的代码,总是出现问题,索性自己写一个,下面这篇文章主要给大家介绍了关于如何利用vscode调试编译后的js代码的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们一起来看看吧
    2018-05-05
  • 详解JS中的柯里化(currying)

    详解JS中的柯里化(currying)

    这篇文章主要介绍了JS中的柯里化(currying),需要的朋友可以参考下
    2017-08-08
  • js实现让某个动作延迟几秒执行

    js实现让某个动作延迟几秒执行

    这篇文章主要介绍了使用js实现让某个动作延迟几秒执行的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 原生JS实现分享侧边栏

    原生JS实现分享侧边栏

    这篇文章主要为大家详细介绍了原生JS实现分享侧边栏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • JS利用Intl解决前端日期和时间的格式化详解

    JS利用Intl解决前端日期和时间的格式化详解

    Intl 是一个全局对象,它的主要用途就是展示国际化信息,可以将字符串,数字和日期和时间转换为指定地区的格式。这篇文章就来和大家聊聊如何利用Intl解决前端日期和时间的格式化吧
    2023-03-03
  • Javascript中产生固定结果的函数优化技巧

    Javascript中产生固定结果的函数优化技巧

    分享一个Javascript编写函数的优化技巧;适用的函数应该要满足以下条件;产生固定结果;复杂或较耗时等等,感兴趣的朋友可以了解下
    2013-01-01
  • 在vs2010中调试javascript代码方法

    在vs2010中调试javascript代码方法

    只在IE浏览器中测试成功了,在谷歌浏览中没有测试成功,其他浏览器没有测试。
    2011-02-02

最新评论