当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 让IE8支持DOM 2(不用框架!)

Javascript
javascript 动态数据下的锚点错位问题解决方法
jQuery 动画基础教程
jQuery 操作XML入门
ASP SQL防注入的方法
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
jquery 插件 任意位置浮动固定层
JavaScript 检测浏览器和操作系统的脚本
不要小看注释掉的JS 引起的安全问题
js实现的验证,学习用js控制td
javascript iframe中打开文件,并检测iframe存在否
Javascript typeof 用法
Javascript valueOf 使用方法
extjs form textfield的隐藏方法
extjs grid取到数据而不显示的解决
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
My Desktop :) 桌面式代码
javascript 双击文本框编辑功能代码
不用写JS也能使用EXTJS视频演示
js 提取class相同的节点集合
js Li来实现的效果

Javascript 中的 让IE8支持DOM 2(不用框架!)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 376 ::
收藏到网摘: n/a

众所周知,IE8开放了对DOM原型的支持以及ECMA v5的两个新方法——Object.defineProperty和Object.getOwnPropertyDexcriptor(单词好长……),并且这两个新方法居然只能用于DOM。 微软此举的意图很明显——以一种极小的代价“实现” DOM2的全部接口。这里举两个例子:
复制代码 代码如下:

Element.prototype.addEventListener = function(evtType, evtHandler) {
return this.attachEvent('on' + evtType, evtHandler);
}
Object.defineProperty(Event.prototype, 'target', {
get: function() { return this.srcElement },
set: function(v) { return this.srcElement = v }
});

这似乎和早年使用__definegetter__之流让Firefox兼容IE的方法一致,不过这次使用的是完全标准(DOM原型和ECMA v5)的方法来弥补IE的缺憾。可能IE8开发时重写了渲染引擎但是没来及(我很乐观……)发布新的DOM接口(可能是为了兼容第三方应用程序),所以给出了这个方案。