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

【JavaScript 漫游】【029】GlobalEventHandlers 接口总结

拉克丝
文章简介

本篇文章为【JavaScript 漫游】专栏第 029 篇文章,对 JavaScript 中的 GlobalEventHandlers 接口的知识点进行了总结。

GlobalEventHandlers 接口

除了 addEventListener(),还有一种方法可以直接指定事件的回调函数。

div.onclick = clickHandler;

这个接口是由 GlobalEventHandlers 接口提供的。它的优点是使用比较方便,缺点是只能为每个事件指定一个回调函数,并且无法指定事件触发的阶段(捕获阶段还是冒泡阶段)。

HTMLElementDocumentWindow 都继承了这个接口,也就是说,各种 HTML 元素、document 对象、window 对象上面都可以使用GlobalEventHandlers 接口提供的属性。

GlobalEventHandlers.onabort

某个对象的 abort 事件(停止加载)发生时,就会调用 onabort 属性指定的回调函数。

各种元素的停止加载事件,到底如何触发,目前并没有统一的规定。因此实际上,这个属性现在一般只用在 <img> 元素上面。

// HTML 代码如下
// <img src="example.jpg" id="img">
var img = document.getElementById('img');
img.onabort = function () {
  console.log('image load aborted.');
}

GlobalEventHandlers.onerror

error 事件发生时,就会调用 onerror 属性指定的回调函数。

error 事件分成两种。

一种是 JavaScript 的运行时错误,这会传到 window 对象,导致window.onerror()

window.onerror = function (message, source, lineno, colno, error) {
  // ...
}

window.onerror 的处理函数共接受五个参数,含义如下。

  • message:错误信息字符串
  • source:报错脚本的 URL
  • lineno:报错的行号,是一个整数
  • colno:报错的列号,是一个整数
  • error: 错误对象

另一种是资源加载错误,比如<img><script>加载的资源出现加载错误。这时,Error 对象会传到对应的元素,导致该元素的 onerror 属性开始执行。

element.onerror = function (event) {
  // ...
}

注意,一般来说,资源的加载错误不会触发 window.onerror

GlobalEventHandlers.onloadGlobalEventHandlers.onloadstart

元素完成加载时,会触发 load 事件,执行 onload()。它的典型使用场景是window 对象和 <img> 元素。对于 window 对象来说,只有页面的所有资源加载完成(包括图片、脚本、样式表、字体等所有外部资源),才会触发 load 事件。

对于 <img><video>等元素,加载开始时还会触发 loadstart 事件,导致执行onloadstart

GlobalEventHandlers.onfocusGlobalEventHandlers.onblur

当前元素获得焦点时,会触发 element.onfocus;失去焦点时,会触发element.onblur

element.onfocus = function () {
  console.log("onfocus event detected!");
};
element.onblur = function () {
  console.log("onblur event detected!");
};

注意,如果不是可以接受用户输入的元素,要触发 onfocus,该元素必须有tabindex 属性。

GlobalEventHandlers.onscroll

页面或元素滚动时,会触发 scroll 事件,导致执行 onscroll()

GlobalEventHandlers.oncontextmenu、GlobalEventHandlers.onshow

用户在页面上按下鼠标的右键,会触发 ·contextmenu 事件,导致执行oncontextmenu()。如果该属性执行后返回 false,就等于禁止了右键菜单。document.oncontextmenuwindow.oncontextmenu` 效果一样。

document.oncontextmenu = function () {
  return false;
};

上面代码中,oncontextmenu 属性执行后返回 false,右键菜单就不会出现。

元素的右键菜单显示时,会触发该元素的 onshow 监听函数。

其他的事件属性

鼠标的事件属性。

  • onclick
  • ondblclick
  • onmousedown
  • onmouseenter
  • onmouseleave
  • onmousemove
  • onmouseout
  • onmouseover
  • onmouseup
  • onwheel

键盘的事件属性

  • onkeydown
  • onkeypress
  • onkeyup

焦点的事件属性

  • onblur
  • onfocus

表单的事件属性

  • oninput
  • onchange
  • onsubmit
  • onreset
  • onreset
  • onselect

触摸的事件属性

  • ontouchcancel
  • ontouchend
  • ontouchmove
  • ontouchstart

拖动的事件属性分成两类:一类与被拖动元素相关,另一类与接收被拖动元素的容器元素相关

被拖动元素的事件属性

  • ondragstart:拖动开始
  • ondrag:拖动过程中,每隔几百毫秒触发一次
  • ondragend:拖动结束

接收被拖动元素的容器元素的事件属性

  • ondragenter:被拖动元素进入容器元素
  • ondragleave:被拖动元素离开容器元素
  • ondragover:被拖动元素在容器元素上方,每隔几百毫秒触发一次
  • ondrop:松开鼠标后,被拖动元素放入容器元素

<dialog> 对话框元素的事件属性

  • oncancel
  • onclose

相关文章:

  • 在Spring Boot中如何实现异常处理?
  • 云计算 2月28号 (linux的磁盘分区)
  • LeetCode-第14题-最长公共前缀
  • nextjs13如何进行服务端渲染?
  • wordpress 开源主题
  • k8s学习-数据管理之nfs手动搭建
  • 基于JavaWEB SpringBoot婚纱影楼摄影预约网站设计和实现
  • Timeplus-proton流处理器调研
  • 自动驾驶加速落地,激光雷达放量可期(上)
  • 突破编程_C++_STL教程( list 的实战应用)
  • C语言基础(五)——结构体与C++引用
  • C/C++嵌入式开发环境搭建,Qt交叉编译,cmake交叉编译,clion/vscode远程开发
  • Qt 简约美观的加载动画 小沙漏风格 第六季
  • C语言:结构体(自定义类型)知识点(包括结构体内存对齐的热门知识点)
  • Spring Boot 常用注解大全
  • 【数据结构与算法】常见排序算法(Sorting Algorithm)
  • leetcode热题100学习计划-链表-反转链表
  • 对象变更记录objectlog工具(持续跟新)
  • Mybatis - generator(自动生成)
  • 蓝桥杯(3.2)
  • 从篆刻书画到装帧设计,再看钱君匋的“艺兼众美”
  • 李家超称香港将部署为内地企业提供供应链服务,突破美国封锁
  • 马上评丨一些影视剧的片名,越来越让人看不懂
  • 漫游者秦龙,一生为经典画插图
  • 小鹏机器人IRON亮相上海车展,何小鹏:相信更多人形机器人会现身车展
  • 汪东进卸任中海油董事长,深耕油气领域40余年、已临近退休