zoukankan      html  css  js  c++  java
  • html页面中js判断浏览器是否是IE浏览器及IE浏览器版本

    HTML里:

    HTML代码中,在编写网页代码时,各种浏览器的兼容性是个必须考虑的问题,有些时候无法找到适合所有浏览器的写法,就只能写根据浏览器种类区别的代码,这时就要用到判断代码了。在HTML代码中,区别各种浏览器的代码如下,以ie6为例
      <!--[if IE 6]>仅IE6可识别<![endif]-->
      <!--[if lte IE 6]> IE6及其以下版本可识别<![endif]-->
      <!--[if lt IE 6]> IE6以下版本可识别<![endif]-->
      <!--[if gte IE 6]> IE6及其以上版本可识别<![endif]-->
      <!--[if gt IE 6]> IE6以上版本可识别<![endif]-->
      <!--[if IE]> 所有的IE可识别<![endif]-->
      以上这些代码写法都是针对ie各版本浏览器的,在其他浏览器中这些代码都会被解释为Html注释而直接无视掉。
      <body>
      <!--[if IE 6]>
      <div>
      IE6中才可以看到
      </div>
      <![endif]-->
      <div>
      其他
      </div>
      </body>
      所以要想些针对firefox之类的非ie浏览器,需要这么写:<!--[if !IE]><!--> 除IE外都可识别<!--<![endif]-->

    js里:

    今天在写一个代码复制功能的时候,发现的这个问题,ie11也不支持document.all,看来以后越来越标准了

    今天碰到一个奇怪的问题,有一个页面,想指定用IE浏览器打开,在VS开发环境没有问题,但部署到服务器上,即使是用IE打开页面,还是提示“仅支持IE”,真是晕啊!!
    判断是否IE浏览器用的是window.navigator.userAgent,跟踪这个信息,发现在开发环境,识别为IE10,但访问服务器则识别为IE11,但IE11的userAgent里是没有MSIE标志的,原因就是这个了。

    把判断IE浏览器的方法改成如下就可以了。

    ie11和edge的userAgent是和ie8,9,10差别蛮大的,那么对用的在写js时需要特别判断,下面给出我写好的一段判断是否是ie且给出ie版本号的js代码段

    function IEVersion() {
                var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串  
                var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器  
                var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器  
                var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
                if(isIE) {
                    var reIE = new RegExp("MSIE (\d+\.\d+);");
                    reIE.test(userAgent);
                    var fIEVersion = parseFloat(RegExp["$1"]);
                    if(fIEVersion == 7) {
                        return 7;
                    } else if(fIEVersion == 8) {
                        return 8;
                    } else if(fIEVersion == 9) {
                        return 9;
                    } else if(fIEVersion == 10) {
                        return 10;
                    } else {
                        return 6;//IE版本<=7
                    }   
                } else if(isEdge) {
                    return 'edge';//edge
                } else if(isIE11) {
                    return 11; //IE11  
                }else{
                    return -1;//不是ie浏览器
                }
            }

    原来的函数写法:对于新版的ie11已经不支持了(用了一下好像不起作用,上面的方法可以用)

    function isIE(){
    if (window.navigator.userAgent.indexOf("MSIE")>=1) 
    return true; 
    else
    return false; 
    }

    ie10及以上不支持ie浏览器的判断了,因为ie11已经不支持document.all了,下面是支持ie11的版本的,当然ie6-8也是支持的

    function isIE() { //ie?
     if (!!window.ActiveXObject || "ActiveXObject" in window)
      return true;
      else
      return false;
     }
  • 相关阅读:
    HDU2586 How far away?(tarjan的LCA)
    You Raise Me Up
    POJ2891 Strange Way to Express Integers(中国剩余定理)
    POJ2142 The Balance(扩展欧几里得)
    HDU 1166模仿大牛写的线段树
    NetWord Dinic
    HDU 1754 线段树裸题
    hdu1394 Minimum Inversion Number
    hdu2795 Billboard
    【完全版】线段树
  • 原文地址:https://www.cnblogs.com/Violety/p/10112187.html
Copyright © 2011-2022 走看看