一七五、HTML 不同类型的事件及其说明和示例

news2024/11/8 9:41:33

HTML 事件处理程序是通过 JavaScript 来捕获和响应不同的用户操作、系统事件或浏览器事件。下面是不同类型的事件及其说明和示例。

Window 事件

1. onresize

当浏览器窗口的大小发生变化时触发。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>onresize Example</title>
  <script>
    window.onresize = function() {
      console.log("Window resized");
    };
  </script>
</head>
<body>
  <h1>Resize the window and check the console</h1>
</body>
</html>
2. onredo

触发 redo 操作时触发(通常与 document.execCommand() 相关)。

<!-- Example with redo event -->
<button onclick="document.execCommand('redo')">Redo</button>
3. onundo

触发 undo 操作时触发。

<!-- Example with undo event -->
<button onclick="document.execCommand('undo')">Undo</button>
4. onload

页面加载完成时触发。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>onload Example</title>
  <script>
    window.onload = function() {
      alert("Page is fully loaded");
    };
  </script>
</head>
<body>
  <h1>onload Example</h1>
</body>
</html>
5. onunload

页面即将卸载时触发。

<script>
  window.onunload = function() {
    alert("You are leaving the page!");
  };
</script>
6. onbeforeunload

页面卸载前触发,通常用于警告用户有未保存的工作。

<script>
  window.onbeforeunload = function() {
    return "Are you sure you want to leave?";
  };
</script>
7. onerror

当页面发生错误时触发。

<script>
  window.onerror = function(message, source, lineno, colno, error) {
    console.error(`Error occurred: ${message}`);
  };
</script>
8. onhaschange

当浏览器历史记录发生变化时触发。

<script>
  window.onhashchange = function() {
    console.log("Hash changed: " + location.hash);
  };
</script>
9. onpopstate

浏览器历史记录状态更改时触发。

<script>
  window.onpopstate = function(event) {
    console.log("State: " + event.state);
  };
</script>
10. onstorage

当发生 localStorage 或 sessionStorage 的修改时触发。

<script>
  window.onstorage = function(event) {
    console.log("Storage changed: " + event.key + " " + event.newValue);
  };
</script>
11. onmessage

当接收到来自另一个窗口或 iframe 的消息时触发。

<script>
  window.onmessage = function(event) {
    console.log("Message received: " + event.data);
  };
</script>
12. onpagehide

当页面隐藏时触发,通常是离开页面或切换标签页时。

<script>
  window.onpagehide = function() {
    console.log("Page is hidden");
  };
</script>
13. onpageshow

当页面显示时触发,通常是通过页面加载或恢复时。

<script>
  window.onpageshow = function() {
    console.log("Page is shown");
  };
</script>
14. ononline

当浏览器连接到网络时触发。

<script>
  window.ononline = function() {
    console.log("You are online");
  };
</script>
15. onoffline

当浏览器断开网络连接时触发。

<script>
  window.onoffline = function() {
    console.log("You are offline");
  };
</script>
16. onafterprint

页面打印完成后触发。

<script>
  window.onafterprint = function() {
    console.log("Printing finished");
  };
</script>
17. onbeforeprint

页面打印之前触发。

<script>
  window.onbeforeprint = function() {
    console.log("Before printing");
  };
</script>

Form 事件

1. oninput

输入字段的值发生变化时触发。

<input type="text" oninput="console.log('Input changed!')">
2. onselect

用户选中输入字段的文本时触发。

<input type="text" onselect="alert('Text selected')">
3. onchange

表单元素的值发生变化时触发。

<select onchange="alert('Selection changed')">
  <option>Option 1</option>
  <option>Option 2</option>
</select>
4. onfocus

当表单元素获得焦点时触发。

<input type="text" onfocus="console.log('Input focused')">
5. onblur

当表单元素失去焦点时触发。

<input type="text" onblur="console.log('Input lost focus')">
6. onsubmit

表单提交时触发。

<form onsubmit="alert('Form submitted')">
  <input type="submit" value="Submit">
</form>
7. onreset

当表单重置时触发。

<form onreset="alert('Form reset')">
  <input type="reset" value="Reset">
</form>
8. onformchange

表单的任何内容发生变化时触发。

<form onformchange="console.log('Form content changed')">
  <input type="text">
</form>
9. onforminput

当表单内容输入时触发。

<form onforminput="console.log('Form input changed')">
  <input type="text">
</form>
10. oninvalid

表单验证失败时触发。

<input type="email" oninvalid="alert('Invalid input')">

Keyboard 事件

1. onkeydown

键盘按下时触发。

<input type="text" onkeydown="console.log('Key pressed')">
2. onkeypress

键盘按下并触发时(此事件已被弃用,推荐使用 onkeydown)。

<input type="text" onkeypress="console.log('Key pressed')">
3. onkeyup

键盘松开时触发。

<input type="text" onkeyup="console.log('Key released')">

Mouse 事件

1. onclick

鼠标单击时触发。

<button onclick="alert('Button clicked')">Click me</button>
2. ondblclick

鼠标双击时触发。

<button ondblclick="alert('Button double-clicked')">Double click me</button>
3. oncontextmenu

鼠标右键点击时触发。

<button oncontextmenu="alert('Right-clicked')">Right-click me</button>
4. onscroll

当页面滚动时触发。

<script>
  window.onscroll = function() {
    console.log("Scrolled");
  };
</script>
5. onmousewheel

当鼠标滚轮滚动时触发。

<script>
  window.onmousewheel = function() {
    console.log("Mouse wheel scrolled");
  };
</script>
6. onmousedown

鼠标按下时触发。

<button onmousedown="alert('Mouse button pressed')">Mouse down</button>
7. onmousemove

鼠标移动时触发。

<script>
  window.onmousemove = function(event) {
    console.log(`Mouse moved: ${event.clientX}, ${event.clientY}`);
  };
</script>
8. onmouseout

鼠标移出元素时触发。

<button onmouseout="alert('Mouse out')">Mouse out</button>
9. onmouseover

鼠标悬停在元素上时触发。

<button onmouseover="alert('Mouse over')">Mouse over</button>
10. onmouseup

鼠标释放时触发。

<button onmouseup="alert('Mouse button released')">Mouse up</button>

Drag 事件

1. ondrag

当元素被拖动时触发。

<div draggable="true" ondrag="alert

('Element is being dragged')">Drag me</div>
2. ondragend

拖动操作结束时触发。

<div draggable="true" ondragend="alert('Drag ended')">Drag me</div>
3. ondragenter

拖动元素进入目标区域时触发。

<div ondragenter="alert('Dragged element entered target')">Drop here</div>
4. ondragleave

拖动元素离开目标区域时触发。

<div ondragleave="alert('Dragged element left target')">Drop here</div>
5. ondragover

当拖动元素在目标区域上方时触发。

<div ondragover="alert('Element is over target')">Drop here</div>
6. ondragstart

拖动开始时触发。

<div draggable="true" ondragstart="alert('Drag started')">Drag me</div>
7. ondrop

当元素被放置到目标区域时触发。

<div ondrop="alert('Element dropped')">Drop here</div>

Media 事件

1. onplay

当媒体播放时触发。

<video onplay="console.log('Video started playing')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
2. onplaying

媒体开始播放时触发。

<video onplaying="console.log('Video is playing')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
3. onpause

媒体暂停时触发。

<video onpause="console.log('Video paused')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
4. onprogress

媒体加载进度发生变化时触发。

<video onprogress="console.log('Progress made')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
5. onerror

媒体加载或播放错误时触发。

<video onerror="console.log('Error loading video')" controls>
  <source src="invalid-video.mp4" type="video/mp4">
</video>
6. onabort

媒体加载被中止时触发。

<video onabort="console.log('Media loading aborted')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
7. onwaiting

媒体等待数据时触发。

<video onwaiting="console.log('Waiting for media data')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
8. oncanplay

媒体可以播放时触发。

<video oncanplay="console.log('Video can play')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
9. oncanplaythrough

媒体可以播放完整时触发。

<video oncanplaythrough="console.log('Video can play through')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
10. ondurationchange

媒体持续时间发生变化时触发。

<video ondurationchange="console.log('Duration changed')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
11. onemptied

媒体数据丢失时触发。

<video onemptied="console.log('Media data emptied')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
12. onended

媒体播放完毕时触发。

<video onended="console.log('Video ended')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
13. onloadeddata

当媒体数据加载时触发。

<video onloadeddata="console.log('Video data loaded')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
14. onloadedmetadata

当媒体元数据加载时触发。

<video onloadedmetadata="console.log('Video metadata loaded')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
15. onloadstart

媒体加载开始时触发。

<video onloadstart="console.log('Video loading started')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
16. onratechange

播放速率发生变化时触发。

<video onratechange="console.log('Rate changed')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
17. onreadystatechange

读取媒体数据状态时触发。

<video onreadystatechange="console.log('Ready state changed')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
18. onseeked

媒体定位完成时触发。

<video onseeked="console.log('Seek completed')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
19. onseeking

媒体定位时触发。

<video onseeking="console.log('Seeking media')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
20. onstalled

媒体下载缓慢时触发。

<video onstalled="console.log('Stalled during download')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
21. onsuspend

媒体暂停下载时触发。

<video onsuspend="console.log('Download suspended')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
22. ontimeupdate

媒体时间更新时触发。

<video ontimeupdate="console.log('Time updated')" controls>
  <source src="video.mp4" type="video/mp4">
</video>
23. onvolumechange

媒体音量发生变化时触发。

<video onvolumechange="console.log('Volume changed')" controls>
  <source src="video.mp4" type="video/mp4">
</video>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2235725.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大模型】通过Crew AI 公司的崛起之路学习 AI Agents 的用法

AI 技术的迅猛发展正以前所未有的速度重塑商业格局&#xff0c;而 AI Agents&#xff0c;作为新一代的智能自动化工具&#xff0c;正逐步成为创新型公司的核心力量。在本文中&#xff0c;我们将探讨如何利用 AI Agents 构建一家 AI 驱动的公司&#xff0c;并详细了解 Crew AI 创…

【Uniapp】Uniapp Android原生插件开发指北

前言 在uniapp开发中当HBuilderX中提供的能力无法满足App功能需求&#xff0c;需要通过使用Andorid/iOS原生开发实现时&#xff0c;或者是第三方公司提供的是Android的库&#xff0c;这时候可使用App离线SDK开发原生插件来扩展原生能力。 插件类型有两种&#xff0c;Module模…

网页版五子棋——用户模块(服务器开发)

前一篇文章&#xff1a;网页版五子棋—— WebSocket 协议-CSDN博客 目录 前言 一、编写数据库代码 1.数据库设计 2.配置 MyBatis 3.创建实体类 4.创建 UserMapper 二、前后端交互接口 1.登录接口 2.注册接口 3.获取用户信息 三、服务器开发 1.代码编写 2.测试后端…

Jenkins声明式Pipeline流水线语法示例

系列文章目录 docker搭建Jenkins2.346.3版本及常用工具集成配置(ldap、maven、ansible、npm等) docker安装低版本的jenkins-2.346.3,在线安装对应版本插件失败的解决方法 文章目录 系列文章目录jenkins流水线基础1、pipeline1.1、什么是pipeline&#xff1f;1.2、为什么使用pi…

【NLP】使用 SpaCy、ollama 创建用于命名实体识别的合成数据集

命名实体识别 (NER) 是自然语言处理 (NLP) 中的一项重要任务&#xff0c;用于自动识别和分类文本中的实体&#xff0c;例如人物、位置、组织等。尽管它很重要&#xff0c;但手动注释大型数据集以进行 NER 既耗时又费钱。受本文 ( https://huggingface.co/blog/synthetic-data-s…

【数据集】【YOLO】【目标检测】道路裂缝数据集 5466 张,YOLO/VOC格式标注!

数据集介绍 【数据集】道路裂缝数据集 5466 张&#xff0c;目标检测&#xff0c;包含YOLO/VOC格式标注。数据集中包含一种分类&#xff0c;检测范围城市道路裂缝、高速道路裂缝、乡村道路裂缝。 戳我头像获取数据&#xff0c;或者主页私聊博主哈~ 一、数据概述 道路裂缝检测…

C++用string实现字符串相加

. - 力扣&#xff08;LeetCode&#xff09; -》》》》》题目链接 实现思路&#xff1a;计算数字符串长度并用数组的方式计算出字符位置&#xff0c;用字符的ask码‘0’计算出字符本身。 class Solution { public:string addStrings(string num1, string num2) {string str;int…

easyexcel实现自定义的策略类, 最后追加错误提示列, 自适应列宽,自动合并重复单元格, 美化表头

easyexcel实现自定义的策略类, 最后追加错误提示列, 自适应列宽,自动合并重复单元格, 美化表头 原版表头和表体字体美化自动拼接错误提示列自适应宽度自动合并单元格使用Easyexcel使用poi导出 在后台管理开发的工作中,离不开的就是导出excel了. 如果是简单的导出, 直接easyexce…

brainpy 动力学编程基础

文章参考&#xff1a; 《神经计算建模实战——基于brainpy》 吴思 【brainpy学习笔记】基础知识2(动力学模型的编程基础)-CSDN博客 Brainpy手册 文章目录 积分器&#xff1a;定义ODE函数数值积分方法 更新函数和动力系统计算介绍什么是brainpy.DynamicalSystem&#xff1f;如…

高级图像处理工具

图像处理-高级 1、功能概览 随着社交媒体的普及和个人创作需求的增长&#xff0c;图像处理成为了日常生活中不可或缺的一部分。无论是专业的设计师还是爱好者&#xff0c;都需要一款强大的工具来帮助他们完成各种任务。今天&#xff0c;我们将介绍一款基于Python开发的高级图…

【Zookeeper集群搭建】安装zookeeper、zookeeper集群配置、zookeeper启动与关闭、zookeeper的shell命令操作

目录 一、安装Zookeeper 二、配置Zookeeper集群 三、Zookeeper服务的启动与关闭 四、Zookeeper的shell操作 前情提要&#xff1a;延续上篇【Hadoop和Hbase集群配置】继续配置Zookeeper&#xff0c;开启三台虚拟机Hadoop1、Hadoop2、Hadoop3&#xff0c;进入终端&#xff0c…

Transformer和BERT的区别

Transformer和BERT的区别比较表&#xff1a; 两者的位置编码&#xff1a; 为什么要对位置进行编码&#xff1f; Attention提取特征的时候&#xff0c;可以获取全局每个词对之间的关系&#xff0c;但是并没有显式保留时序信息&#xff0c;或者说位置信息。就算打乱序列中token…

Python爬虫如何处理验证码与登录

Python爬虫如何处理验证码与登录 Python 爬虫在抓取需要登录的网站数据时&#xff0c;通常会遇到两个主要问题&#xff1a;登录验证和验证码处理。这些机制是网站用来防止自动化程序过度抓取数据的主要手段。本文将详细讲解如何使用 Python 处理登录与验证码&#xff0c;以便进…

《深入浅出Apache Spark》系列②:Spark SQL原理精髓全解析

导读&#xff1a;SQL 诞生于 20 世纪 70 年代&#xff0c;至今已有半个世纪。SQL 语言具有语法简单&#xff0c;低学习门槛等特点&#xff0c;诞生之后迅速普及与流行开来。由于 SQL 具有易学易用的特点&#xff0c;使得开发人员容易掌握&#xff0c;企业若能在其计算机软件中支…

JS实现,防抖节流 + 闭包

防抖&#xff08;Debounce&#xff09; 防抖是指短时间内大量触发同一事件&#xff0c;只会在最后一次事件完成后延迟执行一次函数。 防抖的典型应用场景是输入框的搜索建议功能&#xff0c;用户输入时不需要每次输入都去查询&#xff0c;而是在用户停止输入一段时间后才进行…

安卓编程最方便的读写资料类SharedPreferences,多个APP共享

本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据 下面详细讲解这五种方式的特点 第一种&#xff1a; 使用SharedPreferences存储数据 …

数据分析:转录组差异fgsea富集分析

文章目录 介绍加载R包数据链接导入数据数据预处理DE testing: 2BP vs no-BP比较limma-voomLoad steroid dataIn No-BP patientsIn 2BP patientsCompare gene expression vs bacterial mass其他系统信息介绍 转录组差异fgsea富集分析是一种基于基因集的富集分析方法,它关注的是…

Day13杨辉三角

给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> res new Arra…

Avalonia11如何优雅的跨组件通信

背景&#xff1a; 官网只介绍了推荐适用ReactiveUI&#xff0c;没有过多的案例介绍&#xff0c;对于初入桌面应用开发的小白极其不友好。 本文介绍在Avalonia应用中通过ReactiveUI中的MessageBus进行跨组件通信. 假设需求案例&#xff1a; MainWindowViewModel中发送消息&a…

【开发实战】彻底了解 ThreadLocal

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区:个人社区 💞 个人主页:个人主页 🙉 专栏地址: ✅ Java 中级 🙉八股文专题:剑指大厂,手撕 J…