zoukankan      html  css  js  c++  java
  • 判断ie浏览器7、8、9三个版本

    上午的时候,本来是想做一个position:fixed在各个浏览器下兼容的方案的,但是发现ie7/8下面的position:fixed只支持一个屏幕,如果内容高度超过一个屏幕就不能很好的使用position:fixed了(如果哪个同学有position:fixed的完美方案麻烦给我一下),于是我想用js来兼容,其实就是通过scroll监听来实现,于是需要判断ie7/8这俩版本,但是发现jquery的$.browser.version并不支持ie8,于是我就百度,百度倒是给出很多答案,但是发现ie8还是没能检测出来,后来我自己查看了navigator.userAgent这个东西,在各个浏览器下面打出来是这个样子的:

    //ie9 : Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) 
    //ie8 : Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
    //ie7 : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; Tablet PC 2.0; .NET4.0E; .NET4.0C) 
    //Mozi: Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0
    //goog: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
    //oper: Opera/9.80  (Windows NT 6.1; Edition IBIS) Presto/2.12.388 Version/12.14
    //appl: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2
    

      你就发现,ie8和ie9是一样的,这下子蒙了,看来光靠这个navigator.userAgent是不够了,但是我相信你也很快就知道怎么做了,因为i9还是一个比较先进的浏览器,拥有一些ie8没有的属性,我不一一罗列了,其中一个就是window.innerWidth,这个属性值是浏览器的内高度(不包括工具栏和滚动条,还是一个比较有用的属性)。ie8下面这个属性值是undefined,9下面就ok了,显示的是一个数字。于是判断浏览器版本就很自然了,看下面这个方案:

    if(navigator.userAgent.indexOf("MSIE")>0){   
          if(navigator.userAgent.indexOf("MSIE 6.0")>0){   
            alert("ie6");    
          }   
          if(navigator.userAgent.indexOf("MSIE 7.0")>0){  
            alert("ie7");   
          }   
          if(navigator.userAgent.indexOf("MSIE 9.0")>0 && !window.innerWidth){//这里是重点,你懂的
            alert("ie8");  
          }   
          if(navigator.userAgent.indexOf("MSIE 9.0")>0){  
            alert("ie9");  
          }   
        } 
    

      其他浏览器的判断就简单了,百度一下不要太多。

  • 相关阅读:
    内部排序一
    安全的文件访问方式
    Json序列化
    对进度条的通用封装实现
    关于'//'解答
    jquery中美元符号($)命名冲突
    linux 文件属性与权限
    【层次查询】Hierarchical Queries之亲兄弟间的排序(ORDER SIBLINGS BY)
    How to create a freehand tool
    C# 获取COM对象 ProgId ClsId
  • 原文地址:https://www.cnblogs.com/xuchaosheng/p/2965772.html
Copyright © 2011-2022 走看看