当前位置: 首页 > news >正文

5.2.1 javascript 事件对象.内容补充.

上接5.2 js的加载 和 dom事件_可执行脚本的dom标签-CSDN博客

在 Web 开发里,event 对象存有与事件相关的信息,像事件类型、触发事件的元素、鼠标位置等。不同浏览器对 event 对象的处理存在差异,尤其是 IE8 及更早版本。下面详细解释 event 对象,同时给出兼容现代浏览器和 IE8 的示例。

1. 现代浏览器中的 event 对象

在现代浏览器(如 Chrome、Firefox、Safari 以及 IE9+)里,当给事件处理函数注册事件时,浏览器会自动把 event 对象作为第一个参数传递给该函数。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><button onclick="handleClick(event)">点击我</button><script>
function handleClick(e) {// e 即为 event 对象console.log('Button clicked, event type is: ' + e.type);console.log('Event target is: ', e.target);
}
</script>
</body>
</html>

2. IE8 及更早版本中的 event 对象

在 IE8 及更早版本中,event 对象并非作为参数传递给事件处理函数,而是作为 window 对象的一个属性存在,即 window.event

兼容现代浏览器和 IE8 的实现:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><button onclick="handleClick(event)">点击我</button><script>
function handleClick() {// 兼容现代浏览器和 IE8console.log(window.event)console.log(arguments[0])var e = window.event || arguments[0];// 获取事件类型var eventType = e.type;console.log('Button clicked, event type is: ' + eventType);// 获取事件目标元素,IE8 使用 srcElementvar target = e.target || e.srcElement;console.log('Event target is: ', target);// 获取鼠标点击位置var clientX = e.clientX;var clientY = e.clientY;console.log('Mouse click position: (' + clientX + ', ' + clientY + ')');
}
</script>
</body>
</html>

http://www.dtcms.com/a/298561.html

相关文章:

  • 从零本地部署使用Qwen3-coder进行编程
  • 1.1.4 建筑隔震减震设计结构要求
  • SpringBoot创建项目的方式
  • Spring AOP `MethodInvocation` 工作原理
  • JavaScript 数组的 every() 和 some() 方法使用
  • Web前端:JavaScript Math内置对象
  • 个人财务记录应用
  • SEC_FirePower 第一天作业
  • 2025年07月25日Github流行趋势
  • 【IDEA】IDEA中如何通过分支/master提交git?
  • haproxy篇
  • 扫描电镜全面解析:工作原理、应用领域与样品制备技巧
  • macbook安装homebrew
  • 为什么数组可以做到时间复杂度为O(1)的随机访问
  • jQuery ID与Class选择器对比
  • C++中的deque
  • js多边形算法:获取多边形中心点,且必定在多边形内部
  • Android系统中的4KB内存页简介
  • 【图像理解进阶】如何对图像中的小区域进行细粒度的语义分割?
  • DNS 服务正反向解析与 Web 集成实战:从配置到验证全流程
  • 37.安卓逆向2-frida hook技术-过firda检测(二)(过D-Bus检测和搭配maps检测进行使用)
  • 65.第二阶段x64游戏实战-替换游戏lua打印可接任务
  • OpenCV结合深度学习进行图像分类
  • 暑期自学嵌入式——Day08(C语言阶段)
  • 用单片机怎么控制转速
  • 嵌入式学习-(李宏毅)机器学习(3)-day30
  • 操作系统:操作系统的结构(Structures of Operating System)
  • AI面试与传统面试的核心差异解析——AI面试如何提升秋招效率?
  • RAG架构原理和LangChain方式实现RAG
  • 【正点原子K210连载】第二十一章 machine.UART类实验摘自【正点原子】DNK210使用指南-CanMV版指南