ES6 - 事件
JavaScript 旨在为您的页面添加交互性。JavaScript 使用事件机制来实现这一点。事件是文档对象模型 (DOM) 3 级的一部分,每个 HTML 元素都包含一组可以触发 JavaScript 代码的事件。
事件是软件识别的操作或发生。它可以由用户或系统触发。一些常见的事件示例包括用户单击按钮、加载网页、单击超链接等。以下是一些常见的 HTML 事件。
事件处理程序
当事件发生时,应用程序会执行一组相关任务。实现此目的的代码块称为 eventhandler。每个 HTML 元素都有一组与之关联的事件。我们可以使用事件处理程序定义如何在 JavaScript 中处理事件。
onclick 事件类型
这是最常用的事件类型,当用户单击鼠标左键时发生。您可以针对此事件类型进行验证、警告等。
示例
<html>
<head>
<script type = "text/javascript">
function sayHello() {
document.write ("Hello World")
}
</script>
</head>
<body>
<p> Click the following button and see result</p>
<input type = "button" onclick = "sayHello()" value = "Say Hello" />
</body>
</html>
成功执行上述代码后将显示以下输出。
onsubmit 事件类型
onsubmit 是当您尝试提交表单时发生的事件。您可以针对此事件类型进行表单验证。
以下示例显示如何使用 onsubmit。在这里,我们在向 Web 服务器提交表单数据之前调用一个validate() 函数。如果validate() 函数返回 true,则将提交表单,否则将不会提交数据。
示例
<html>
<head>
<script type = "text/javascript">
function validation() {
all validation goes here
.........
return either true or false
}
</script>
</head>
<body>
<form method = "POST" action = "t.cgi" onsubmit = "return validate()">
.......
<input type = "submit" value = "Submit" />
</form>
</body>
</html>
onmouseover 和 onmouseout
这两种事件类型将帮助您使用图像甚至文本创建漂亮的效果。当您将鼠标移到任何元素上时,会触发 onmouseover 事件,而当您将鼠标移出该元素时,会触发 onmouseout 事件。
示例
<html>
<head>
<script type = "text/javascript">
function over() {
document.write ("Mouse Over");
}
function out() {
document.write ("Mouse Out");
}
</script>
</head>
<body>
<p>Bring your mouse inside the division to see the result:</p>
<div onmouseover = "over()" onmouseout = "out()">
<h2> This is inside the division </h2>
</div>
</body>
</html>
成功执行上述代码后将显示以下输出。
HTML 5 标准事件
下表列出了标准的 HTML 5 事件,供您参考。该脚本表示针对该事件执行的 JavaScript 函数。
| 属性 | 值 | 说明 |
|---|---|---|
| offline | script | 文档离线时触发 |
| onabort | script | 在中止事件上触发 |
| onafterprint | script | 文档打印后触发 |
| onbeforeonload | script | 文档加载前触发 |
| onbeforeprint | script | 文档打印前触发 |
| onblur | script | 窗口失去焦点时触发 |
| oncanplay | script | 当媒体可以开始播放但可能需要停止缓冲时触发 |
| oncanplaythrough | script | 当媒体可以播放至结尾而无需停止缓冲时触发 |
| onchange | script | 元素更改时触发 |
| onclick | script | 鼠标单击时触发 |
| oncontextmenu | script | 触发上下文菜单时触发 |
| ondblclick | script | 鼠标双击时触发 |
| ondrag | script | 元素被拖动时触发 |
| ondragend | script | 拖动操作结束时触发 |
| ondragenter | script | 元素被拖动到有效放置目标时触发 |
| ondragleave | script | 元素离开有效放置目标 |
| ondragover | script | 当元素被拖到有效的放置目标上时触发 |
| ondragstart | script | 在拖动操作开始时触发 |
| ondrop | script | 在拖动元素被放下时触发 |
| ondurationchange | script | 在媒体长度改变时触发 |
| onemptied | script | 在媒体资源元素突然变空 |
| onended | script | 当媒体到达末尾时触发 |
| onerror | script | 发生错误时触发 |
| onfocus | script | 当窗口获得焦点时触发 |
| onformchange | script | 当表单更改时触发 |
| onforminput | script | 当表单获得用户输入时触发 |
| onhaschange | script | 当文档发生更改时触发 |
| oninput | script | 当元素获得用户输入时触发 |
| oninvalid | script | 当元素无效时触发 |
| onkeydown | script | 当按下某个键时触发 |
| onkeypress | script | 当按下并释放某个键时触发 |
| onkeyup | script | 当释放某个键时触发 |
| onload | script | 文档加载时触发 |
| onloadeddata | script | 媒体数据加载时触发 |
| onloadedmetadata | script | 媒体元素的持续时间和其他媒体数据加载时触发 |
| onloadstart | script | 浏览器开始加载媒体数据时触发 |
| onmessage | script | 消息触发时触发 |
| onmousedown | script | 鼠标按钮按下时触发 |
| onmousemove | script | 鼠标指针移动时触发 |
| onmouseout | script | 当鼠标指针移出元素时触发 |
| onmouseover | script | 鼠标指针移到元素上时触发 |
| onmouseup | script | 鼠标按钮释放时触发 |
| onmousewheel | script | 鼠标滚轮旋转时触发 |
| onoffline | script | 文档离线时触发 |
| ononline | script | 文档在线时触发 |
| onpagehide | script | 窗口隐藏时触发 |
| onpageshow | script | 当窗口可见时触发 |
| onpause | script | 当媒体数据暂停时触发 |
| onplay | script | 当媒体数据即将开始播放时触发 |
| onplaying | script | 媒体数据开始播放时触发 |
| onpopstate | script | 窗口历史记录更改时触发 |
| onprogress | script | 浏览器获取媒体时触发数据 |
| onratechange | script | 当媒体数据的播放速率发生变化时触发 |
| onreadystatechange | script | 当就绪状态改变时触发 |
| onredo | script | 当文档执行重做时触发 |
| onresize | script | 当窗口调整大小时触发 |
| onscroll | script | 当元素的滚动条正在滚动时触发 |
| onseeked | script | 当媒体元素的搜索属性不再为真且搜索已结束时触发 |
| onseeking | script | 触发器当媒体元素的搜索属性为真,且搜索已开始时 |
| onselect | script | 当元素被选中时触发 |
| onstalled | script | 当获取媒体数据时出错时触发 |
| onstorage | script | 文档加载时触发 |
| onsubmit | script | 表单提交时触发 |
| onsuspend | script | 浏览器已获取媒体数据但在获取整个媒体文件之前停止时触发 |
| ontimeupdate | script | 当媒体改变其播放位置时触发 |
| onundo | script | 当文档执行撤消时触发 |
| onunload | script | 当用户离开文档时触发 |
| onvolumechange | script | 当媒体改变音量时触发,当音量设置为"静音"时也触发 |
| onwaiting | script | 当媒体已停止播放但预计会恢复时触发 |

