欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ie支持htmlelement IEprototype浏览器HTML

程序员文章站 2024-02-23 12:11:58
...
var DOMElement ={
			extend: function(name,fn){//添加名称为name的方法fn
			
				if(!document.all)//除了ie而外的浏览器都能够访问到HTMLElement这个类
					HTMLElement.prototype[name] = fn;//eval("HTMLElement.prototype." + name + " = fn");
				else{
					//    IE中不能访问HTMLElement这个类
					//    为了达到同样的目的,必须重写下面几个函数
					//    document.createElement
					//    document.getElementById
					//    document.getElementsByTagName
					//    这几个函数都是获得HTML元素的方法
					//    修改这些方法,使得通过这些方法获得的每个元素拥有名称为name的方法fn

					var _createElement = document.createElement;
					document.createElement = function(tag){
						var _elem = _createElement(tag);
						_elem[name] = fn;//eval("_elem." + name + " = fn");也可以达到同样的目的
						return _elem;
					}

					var _getElementById = document.getElementById;
					document.getElementById = function(id){
						var _elem = _getElementById(id);
						_elem[name] = fn;
						return _elem;
					}

					var _getElementsByTagName = document.getElementsByTagName;
					document.getElementsByTagName = function(tag){
						var _arr = _getElementsByTagName(tag);
						for(var _elem=0;_elem<_arr.length;_elem++) {
							_arr[_elem][name] = fn;//eval("_arr[_elem]." + name + " = fn");
						}
						return _arr;
					}
				}
				return this;//可以使用连带操作
			}
		};		

使用方法:
DOMElement.extend('show',function() {
				//if ('inline' == type)
				//{
					//this.style.display = 'inline';
				//}
				//else 
				//{
					this.style.display = 'block';
				//}			
			});DOMElement.extend('hide',function() {
				this.style.display = 'none';
			});