判定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
投稿

猜你喜欢

  • python识别围棋定位棋盘位置

    2023-01-09 01:49:34
  • python实现简单中文词频统计示例

    2022-04-17 16:54:35
  • 基于JS实现经典的井字棋游戏

    2024-04-28 09:51:10
  • pycharm 使用心得(九)解决No Python interpreter selected的问题

    2021-03-03 03:32:11
  • javascript判断一个元素是否数组

    2009-07-31 12:48:00
  • 撤回我也能看到!教你用Python制作微信防撤回脚本

    2021-08-05 14:38:30
  • js 获取经纬度的实现方法

    2024-06-10 16:56:45
  • 聊聊golang的defer的使用

    2023-07-21 13:15:02
  • matplotlib图形整合之多个子图绘制的实例代码

    2023-10-23 23:17:47
  • 简单解析PHP程序的运行流程

    2023-06-22 07:35:41
  • python绘制超炫酷动态Julia集示例

    2023-10-04 12:58:49
  • 深入了解python的tkinter实现简单登录

    2023-03-25 14:15:27
  • 深度解读Python如何实现dbscan算法

    2023-12-22 01:31:50
  • Go语言中的闭包详解

    2023-06-30 05:27:14
  • django 捕获异常和日志系统过程详解

    2022-04-26 22:12:43
  • Golang关键字defer的用法详解

    2024-02-04 13:52:45
  • jupyter notebook中美观显示矩阵实例

    2023-06-06 18:13:35
  • Discuz!NT 论坛整合ASP程序论坛

    2011-03-31 10:40:00
  • pip/anaconda修改镜像源,加快python模块安装速度的操作

    2022-06-01 10:42:26
  • 基于Vue实现简单的贪食蛇游戏

    2024-04-27 16:13:17
  • asp之家 网络编程 m.aspxhome.com