JS获取事件的源对象

在IE下,event对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,但是没有srcElement属性.

 解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.。同时注意event的 兼容性问题。

 

//获取事件

function GetEvent() 

   if(document.all) // IE 

   { 

       return window.event; 

   } 

   func = GetEvent.caller; // 返回调用本函数的函数 

   while(func != null) 

   { 

       // Firefox 中一个隐含的对象 arguments,第一个参数为 event 对象  

       var arg0 = func.arguments[0]; 

       //alert('参数长度:' + func.arguments.length); 

       if(arg0) 

       { 

           if((arg0.constructor == Event || arg0.constructor == MouseEvent) 

               ||(typeof(arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) 

           { 

               return arg0; 

           } 

       } 

       func = func.caller; 

   } 

   return null; 

}  

var srcObj = ((ev.srcElement)?ev.srcElement:ev.target); 

posted @ 2010-07-16 10:12  迟追  阅读(11243)  评论(0编辑  收藏  举报