网络编程
位置:首页>> 网络编程>> JavaScript>> 判定IE的各个版本

判定IE的各个版本

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

标签: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盛世的到来吧。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com