假设要使用一个input button的事件
<input type='button' id='btna' onclick='func()' value='测试' />
function func()
{
//返回input的ID
var putID = window.event.srcElement.id;
alert(putID);
}
但是这样写在firefox上错误的.
在firefox要这样写
<input type='button' id='btna' onclick='func(event)' value='测试' />
function func(evt)
{
//返回input的ID
var putID = evt.target.id;
alert(putID);
}
2。兼容的写法是:
<input type='button' id='btna' onclick='func(event)' value='测试' />
function srcState(evt)
{
var El = null;
if (typeof evt != 'undefined')
{
if (document.all)
El = evt.srcElement.id;
else
El = evt.target.id;
}
return El;
}
function func(evt)
{
//返回input的ID
var putID = srcState(evt);
alert(putID);
}
3。最后一种写法(IE,Firefox都可以):
首先要在IE,Firefox上获取event事件
function SearchEvent()
{
if(document.all)
return window.event;
func=SearchEvent.caller;
while(func!=null)
{
var arg0=func.arguments[0];
//alert(arg0);
if(arg0)
{
//alert(arg0.constructor);
if(arg0.constructor==MouseEvent || arg0.constructor==Event || arg0.constructor==KeyboardEvent) // 如果就是event 对象
return arg0;
}
func=func.caller;
}
return null;
}
<input type='button' id='btna' onclick='func()' value='测试' />
function func()
{
var evt = SearchEvent();
var putID = srcState(evt);
alert(putID);
}