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

Javascript
javascript秒数倒计时自动跳转代码
js动态生成按钮并动态生成8位随机数
JS旋转图片阵类
javascript md5加密代码
window.onload的页面加载技巧
javascript显示隐藏层比较不错的方法分析
javascript优先加载笔记代码
JavaScript for in锚点的动态创建
初学JavaScript第二章
javascript类型File的Input按钮功能研究
JavaScript下申明对象的几种方法小结
一个jquery的弹出层的插件
IE与firefox之jquery用法区别
判断JavaScript对象是否可用的最正确方法分析
javascript布局查看器效果代码
js模拟画笔效果
无废话JavaScript教程(全集)
执行iframe中的javascript方法
解决function函数内的循环变量
jQuery弹出层插件简化版代码

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 374 ::
收藏到网摘: 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接口(可能是为了兼容第三方应用程序),所以给出了这个方案。