JavaScript 事件——“事件类型”中“UI事件”的注意要点
myzbx 2025-01-10 15:40 21 浏览
“DOM3级事件”规定了一下几类事件
UI事件,当用户与页面上的元素交互时除法;
焦点事件,元素获得或失去焦点;
鼠标事件,通过鼠标在页面上执行操作;
滚轮事件,使用鼠标滚轮或类似设备;
文本事件,当用户在文档中输入文本;
键盘事件,通过键盘在页面上执行操作;
合成事件,当为IME(Input Method Editor,输入法编辑器)输入字符时除法;
变动事件(mutation),底层DOM结构发生变化;
变动名称事件,当元素或属性名变动时,此类事件已被废弃。
下文着重说明UI事件的内容
UI事件指的是那些不一定与用户操作有关的事件。
DOMActivate,元素已经被用户操作(鼠标或键盘)激活。已经被废弃。load,页面完全加载完后在window上触发,所有框架加载完毕后在框架集上触发,图像加载完毕在img元素上触发,当嵌入内容加载完毕在object元素上触发。
unload,页面完全卸载(window),所有框架都卸载后(框架集),嵌入内容卸载完毕后(object)。
abort,当用户停止下载过程,如果嵌入内容没有加载完,则在object元素上除法。
error,当js错误时(window),当无法加载图像时(img),当无法加载嵌入内容时(object),当一或多个框架无法加载(框架集)。
select,当用户选择文本框(texterea或input)中的一个或多个字符时触发。
resize:当窗口或框架的大小变化时(window或框架)
scroll:当用户滚动带滚动条的元素中的内容时(在该元素上触发)
load事件
js中最常用的一个事件就是load,当页面完全加载完毕后(所有图像、js文件、css文件等),就会触发window上面的load事件。如:
window.onload = function {
console.log('loaded');
}
一般来说,在window上面发生的任何事件都可以在body元素中通过相应的特征来指定,因为在HTML中无法访问window元素。这只是为了保证向后兼容的一种权宜之计。如:
document.body.onload = function {
console.log('loaded');
}
同样也可以在图像元素上使用:
var img = document.getElementById("img");
img.onload = function {
console.log(event.target.src);
}
又如下面代码,在window加载完毕后,想body追加一个img元素,在img元素加载完毕后再提示图像的src以及一个提示信息:
window.onload = function {
var image = document.createElement("img");
document.body.appendChild(image);
image.src = "scr.png"
image.onload = function {
console.log(event.target.src);
console.log('img is loaded');
};
}
另外,script元素也以非标准的方式支持load事件。
部分浏览器还支持link元素上的load事件,以便开发人员确定样式表是否加载完毕。
unload事件
这个事件在文档被完全卸载后触发。只要用户从一个页面切换到另一个页面,就会发生unload事件。
window.onunload = function {
alert("8888");
}
应该小心编写onunload事件处理程序中的代码,因为页面加载后存在的那些对象,此时就不一定存在了。
resize事件
当浏览器窗口被调整到一个新的高度或宽度,就会触发该事件。
window.onresize = function {
console.log(document.body.clientWidth);
}
因为部分浏览器在窗口变化了1像素就触发该事件,并随着变化不断触发;也有浏览器则只会在用户停止调整窗口大小时才会触发。所以应该避免在这个事件的处理程序中加入大量的计算代码,避免浏览器反应变慢。
scroll事件
该事件虽然在window对象上发生的,但实际表示的是页面中响应元素的变化。混杂模式下,通过body元素的scrollLeft和scrollTop来监控变化;而在非标准模式下,除Safari之外的所有浏览器都会通过html元素(documentElement)来反映这个变化:
window.onscroll = function {
console.log(document.documentElement.scrollTop || document.body.scrollTop);
}
因为浏览器随着变化不断触发,所以应该避免在这个事件的处理程序中加入大量的计算代码,避免浏览器反应变慢。
abort事件
关于abort、error、select等事件以后再讨论
error事件
关于abort、error、select等事件以后再讨论
select事件
关于abort、error、select等事件以后再讨论
- 上一篇:JavaScript HTML DOM 事件之鼠标事件
- 下一篇:js事件机制详解
相关推荐
- 如何用5分钟开发一个 Webpack Loader?
-
嗨,我是勾勾。今天分享的内容是如何开发一个简单的WebpackLoader,希望通过这个过程能够让你Get到WebpackLoader的工作原理与机制。Loader作为Webpack...
- 前端——CORS跨域请求的限制与解决
-
node中设置允许跨域如果需要设置多个域允许跨域,可以根据req请求的地址进行写入不同的header;consthttp=require('http')http.cre...
- 5分钟看懂的WebAssembly入门指南(webassembly开发)
-
子肃阿里开发者2023-06-2009:01发表于浙江阿里妹导读本文是一篇WebAssembly的入门文章,从理论介绍到实战方面有全面的讲述。历史进程由于javascript的动态类型特性...
- 刚刚发布!Claude 4连续工作7小时,比Cursor、Copilot还猛?
-
你见过不吃不喝、连续工作7小时的“程序员”吗?Anthropic最新发布的Claude4,不只是AI,更像是你团队里的CTO。一、什么是Claude4?别急,这不是你熟悉的GPT“亲戚”202...
- JS对象判空的几种方式,你真的会了吗?
-
前言:为什么空对象检测如此重要?在开发中我们经常会遇到这样的场景:if(isEmpty(userInfo)){//跳转登录页}四种主流检测方案对比方案一:Object.keys()基础版fun...
- 密码被破译,行踪被美军全程掌握,日本海军军神命丧太平洋
-
【军武次位面】FriedrichLau一.突袭1941年12月7日,伴随着日军偷袭美军位于珍珠港的基地,美国也终于卷入了这场绵延全球的战火之中。为了报复日军这一行动,美军随后打出了一套组合拳,除了在太...
- 提示词技术详解(2)——零样本提示词
-
一、零样本提示(Zero-Shot)是一种会起到作用的办法。首先让模型重写提示词,然后把重写后的提示词再发给模型,以期提升回答效果。论文给出的提示词如下,仅供参考。给定一位用户的以下文字,提取其中不带...
- 这些流行饮料的中文名称,你会说吗?
-
[Photo/Pexels]Summerisinfullswing,andtheweatherishot!Tohelpyoucooldown,coldandrefre...
- 密码被破译多可怕?被美军全程盯梢,日本海军军神命丧太平洋
-
【军武次位面】FriedrichLau一.突袭1941年12月7日,伴随着日军偷袭美军位于珍珠港的基地,美国也终于卷入了这场绵延全球的战火之中。为了报复日军这一行动,美军随后打出了一套组合拳,除了在太...
- 一课译词:刀子嘴(刀子嘴是什么)
-
你身边一定有一些人,他们的言语总是那么尖锐、刺耳,但内心却又格外善良柔软,了解他们的人都知道,他们其实只是“刀子嘴,豆腐心”。“刀子嘴”,形容人说话十分刻薄(speaksarcasticallya...
- 捷克插画家柯薇塔·巴可维斯卡逝世,曾为《灰姑娘》绘制插图
-
柯瑞塔·巴可维斯卡。(图源:捷克共和国文化部)据捷克多家媒体消息,当地时间2月6日,捷克插画家柯薇塔·巴可维斯卡逝世,享年94岁。该消息经由她的儿子斯特潘·格里格(StěpánGrygar)证实。柯...
- 网络“匿名提问箱”成年轻人社交新宠 为何这么火?
-
网络“匿名提问箱”成为年轻人社交新宠“来自陌生人的关心”为什么这么火?“年度歌单里排名第一的是哪首歌?”“未来十年你的人生规划?”“有没有被甩过?”最近,这种别人能够匿名向自己提问的“提问箱”越来越得...
- 美国要开始搞6G了?专家:关键技术仍在摸索
-
2月21日,美国总统特朗普发推特“我希望5G乃至6G早日在美国落地”。日前,美国联邦通信委员会朝着特朗普的指示迈出了第一步,决定开放95千兆赫到3太赫兹频段,供6G实验使用。纽约大学教授泰德·拉帕波特...
- 常见的连续型随机变量(1)(连续型随机变量的定义与性质)
-
1.均匀分布在概率论和统计学中,均匀分布也叫矩形分布,它是对称概率分布,在相同长度间隔的分布概率是等可能的。均匀分布由两个参数a和b定义,它们是数轴上的最小值和最大值,通常缩写为U(a,b)。统计...
- 身高表上的-2SD、-1SD、中位数.....都是啥?和百分位有关系吗?
-
上周日晚,小编正气呼呼地和娃上演“作业拉锯战”时,“叮”的一声,一条微信发了过来。无独有偶,第二天又有朋友发来门诊记录,不知道SD什么意思。从家长应用的角度来看,无需太纠结,根据个人习惯选择即可。从生...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 简介 (30)
- HTML 响应式设计 (31)
- HTML URL 编码 (32)
- HTML Web 服务器 (31)
- HTML 表单属性 (32)
- HTML 音频 (31)
- HTML5 支持 (33)
- HTML API (36)
- HTML 总结 (32)
- HTML 全局属性 (32)
- HTML 事件 (31)
- HTML 画布 (32)
- HTTP 方法 (30)
- 键盘快捷键 (30)
- CSS 语法 (35)
- CSS 选择器 (30)
- CSS 轮廓宽度 (31)
- CSS 谷歌字体 (33)
- CSS 链接 (31)
- CSS 定位 (31)
- CSS 图片库 (32)
- CSS 图像精灵 (31)
- SVG 文本 (32)
- 时钟启动 (33)
- HTML 游戏 (34)