事件对象上为什么要有srcElement和target两个属性?且二者可以看到内容都是一样的、 js中event.srcElement和event.target用法和区别?_前端

事件对象上为什么要有srcElement和target两个属性?且二者可以看到内容都是一样的

js中event.srcElement和event.target用法和区别?

IE中,event对象有srcElement属性,但是没有target属性。

firefox中,event对象有target属性,但是没有srcElement属性。

可以使用:var node = event.srcElement?event.srcElement:event.target;
或着:var node = event.srcElement || event.target; 来兼容获取当前dom,也就是都是返回事件触发时鼠标所在的对象
function(event) {
let dom = event.srcElement || event.target;
console.log( dom.nodeName.toLowerCase() === 'input' || dom.nodeName.toLowerCase() === 'textarea') // 获取dom的名字
}