JavaScript中获取event对象的标准写法是在事件监听函数中直接接收参数,兼容IE8需用var e = e || window.event;目标元素用e.target || e.srcElement,阻止默认行为用e.preventDefault ? e.preventDefault() : e.returnValue = false。

在JavaScript事件处理中,event对象是触发事件时自动生成的参数,它包含了事件类型、目标元素、坐标信息、按键状态等关键数据。获取方式和兼容性处理是前端开发中的基础但易出错环节。
如何获取event对象
现代标准写法是在事件监听函数中直接接收event参数:
- 使用
addEventListener时,event作为第一个参数自动传入(推荐) - 内联事件属性(如
onclick="handler()")中需手动传入event,例如:onclick="handler(event)" - 传统DOM0级绑定(如
btn.onclick = handler)同样通过函数参数接收
IE8及更早版本的兼容写法
旧版IE(IE6–IE8)不支持标准event参数传递,而是将event挂载在全局window.event上:
- 统一写法:在事件处理函数开头加
var e = e || window.event; - 这样既兼容现代浏览器(e来自参数),也兼容IE(取window.event)
- 注意:不要在箭头函数中用
window.event,因为箭头函数没有自己的this和arguments,且window.event在现代浏览器中已废弃
常用属性的跨浏览器写法
不同浏览器对event属性命名存在差异,需做适配:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
立即学习“Java免费学习笔记(深入)”;
-
事件目标元素:
e.target || e.srcElement(target是标准,srcElement是IE专属) -
阻止默认行为:
e.preventDefault ? e.preventDefault() : e.returnValue = false; -
阻止事件冒泡:
e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true; -
键盘按键码:
e.which || e.keyCode || e.charCode(优先用which,IE用keyCode,老Safari用charCode)
现代开发建议
除非必须支持IE8及以下,否则可直接使用标准API:
- 用
addEventListener替代onclick = … - 直接使用
e.target、e.preventDefault()等标准属性和方法 - 借助Babel或Polyfill(如core-js)补全旧环境能力
- 构建工具(如Webpack + babel-preset-env)可按需转译,减少手动兼容代码
不复杂但容易忽略。核心就是参数优先、全局兜底、属性桥接。

















