判定IE的各个版本

来源:Ruby's Louvre 时间:2010-01-19 14:01:00 

主要使用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盛世的到来吧。

标签:IE,版本,判断
0
投稿

猜你喜欢

  • DB2和 Oracle的并发控制(锁)的比较

    2009-02-28 10:29:00
  • 用JS开发页面动画效果时的一个设计思路

    2008-02-03 15:12:00
  • 使用FCKeditor添加文章时,在文章最后多了逗号

    2007-10-11 13:38:00
  • 那些被我遗忘掉的XHTML标签们

    2008-06-07 14:27:00
  • Access中实现case when功能

    2009-04-28 13:02:00
  • 如何实现某些页面只让特定的用户浏览?

    2010-05-19 21:42:00
  • MySQL UPDATE时主键冲突引发的思考

    2008-06-21 17:00:00
  • 如何使用XML实现多渠道接入网站的构架

    2008-09-05 17:13:00
  • asp中的rs.open与conn.execute的区别说明

    2011-02-24 10:56:00
  • 前端开发中的一些用户体验细节

    2010-10-19 12:23:00
  • asp函数遍历文件夹代码

    2010-06-21 10:38:00
  • Check In和Check Out的多人协作管理

    2007-02-03 11:39:00
  • SQL Server复制功能 巧妙选择避开Bug

    2011-01-04 17:03:00
  • 保护MySQL数据库中重要数据的注意事项

    2009-01-19 11:55:00
  • 费明红:什么样的404页面才是正确的?

    2009-05-21 17:47:00
  • 前端开发中一些常用技巧总结

    2010-07-18 13:13:00
  • jQuery选择器 学习总结

    2008-06-15 15:41:00
  • 永不熄灭的爱心图标——腾讯公益月捐计划 “QQ首席图标”诞生记

    2009-09-01 19:43:00
  • mysql int范围与最大值分析

    2012-03-26 18:24:00
  • 写SQL语句的经验

    2009-04-13 16:02:00
  • asp之家 网络编程 m.aspxhome.com