• 判定IE的各个版本


    主要使用IE各个阶段实现的一些方法,从中也可以看出IE的发展史。暂时提供到IE4的判定。

    var isIE = window.ActiveXObject;
    var isVersion = document.querySelectorAll ? 8.0 :
    	              window.XMLHttpRequest  ? 7.0 :
    	              document.compatMode    ? 6.0 :
    	              (0).toFixed                    ? 5.5 :
    	              document.getElementById? 5.0 : 
                          document.all                  ? 4.0 :0;
    

    IE5支持getElementById真是一个伟大的创举。新事物的出现总是引起话题,想起我的javascript启蒙书《Javascript DOM编程艺术》,里面的代码总是少不了判定是否支持getElementById……从此IE5走向辉煌,把网景推向地狱的深渊。IE5发布于1998年9月,从此所有主流浏览器都支持getElementById。

    网上找到让IE4支持getElementById的代码,javascript的动态解析立功了。

          var ie4=document.all && !document.getElementById;
          if(ie4) {
            document.getElementById = new Function('var expr = /^\\w[\\w\\d]*$/, elname=arguments[0]; if(!expr.test(elname)) { return null; } else if(eval("document.all."+elname)) { return eval("document.all."+elname); } else return null;')
          }
    

    还有getElementsByTagName的实现:

    function ie_getElementsByTagName(str) {
     if (str=="*")
      return document.all
     else
      return document.all.tags(str)
    }
    
    if (document.all)
     document.getElementsByTagName = ie_getElementsByTagName
    

    很明显如果这些方法得到内置的原生支持,工作效率会大大提升,像jQuery的选择器之于querySelectorAll。IE5可能是当年内置方法与私有实现最多的浏览器,因此它赢得很彻底(抛开捆绑的原因)。内置方法越多,那么对于创建类库的工作就越轻松,从那时开始javascript的类库也多起来了。时至今日,javascript挟以jQuery的东风,越来越受到人重视。加之,西方人对后端javascript的研究,W3C许多惊人的草案的实现,微软加快对标准的支持,谷歌V8的javascript引擎与OS的咄咄逼人,我们一同期待IE9盛世的到来吧。

  • 相关阅读:
    Sql获取当前用户可以访问的数据库名
    MSChart中转义符
    PhoneGap 调用activity中的方法
    爬hao123应对不同页面不同编码
    C#调用脚本语言(三) IronJS 与 IronLua 简单方法性能比较
    Sailfish预研结果
    phonegap开发者需要注意喽,小心图片外链
    IOS 5 解析Json
    C#调用脚本语言(二) IronJS基本语法
    使用phonegap,进行页面跳转
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/1649106.html
Copyright © 2020-2023  润新知