这个函数是 《犀利开发 jquery内核详解与实践》这本书中的一段代码.
作用是用来扩展DOM的.然后为DOM绑定自定义函数.不知道这个可不可以拿来用.
我试验之后,可以用.但是不知道有没有什么问题.
代码如下
var DOMextend=function(name,fn){ if(!document.all){ eval("HTMLElement.prototype."+name+"=fn"); }else{ var _createElement=document.createElement; document.createElement=function(tag){ //为createElement函数绑定自定义函数 var _elem=_createElement(tag); eval("_elem."+name+"=fn"); return _elem; } var _getElementById=document.getElementById; document.getElementById=function(id){ //为getElementById函数绑定自定义函数 var _elem=_getElementById(id); eval("_elem."+name+"=fn"); return _elem; } var _getElementsByTagName=document.getElementsByTagName; document.getElementsByTagName=function(tag){ //为getElementsByTagName函数绑定自定义函数 var _arr=_getElementsByTagName(tag); for(var _elem=0;_elem<_arr.length;_elem++){ eval("_arr[_elem]."+name+"=fn"); } return _arr; } } }
测试用例
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="domextend.js"></script> </head> <body> <div id="test"></div> <script type="text/javascript"> DOMextend("sayhi",function(){ alert("sayhi,yes!");}); document.getElementById("test").sayhi(); </script> </body> </html>