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);