zoukankan      html  css  js  c++  java
  • 怎么在html页面和js里判断是否是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已经不支持了(用了一下好像不起作用,上面的方法可以用)

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

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

    1
    2
    3
    4
    5
    6
    function isIE() { //ie?
     if (!!window.ActiveXObject || "ActiveXObject" in window)
      return true;
      else
      return false;
     }
  • 相关阅读:
    从SQL注入谈数据访问层
    Combobox下拉框两级联动
    C#IO流文件操作
    网络电视精灵思路分析
    简单工厂和单例设计模式浅解
    可扩展标记语言
    深入理解多态
    未将对象引用到实例
    Python 项目实践二(生成数据)第一篇
    Python 项目实践一(外星人入侵小游戏)第五篇
  • 原文地址:https://www.cnblogs.com/liuyanxia/p/5855760.html
Copyright © 2011-2022 走看看