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

Javascript
JQuery 学习笔记 选择器之四
JQuery 学习笔记 选择器之五
JQuery 学习笔记 选择器之六
JQuery CSS样式控制 学习笔记
用js模仿word格式刷功能实现代码 [推荐]
运用jquery实现table单双行不同显示并能单行选中
jqPlot jquery的页面图表绘制工具
jquery tools之tabs 选项卡/页签
jquery tools之tooltip
浅析Javascript原型继承 推荐
JQuery UI皮肤定制
实现lightBox时的样式与行为分离减少JS
JQuery 表格操作(交替显示、拖动表格行、选择行等)
javascript 进度条 实现代码
Javascript this指针
jquery imgareaselect 使用利用js与程序结合实现图片剪切
javascript 写的一个简单的timer
javascript 处理HTML元素必须避免使用的一种方法
Javascript 验证上传图片大小[客户端]
jQuery 隔行换色 支持键盘上下键,按Enter选定值

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


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