-
JavaScript 事件——“事件类型”中“UI事件”的注意要点
- 网站名称:JavaScript 事件——“事件类型”中“UI事件”的注意要点
- 网站分类:技术文章
- 收录时间:2025-06-09 21:10
- 网站地址:
“JavaScript 事件——“事件类型”中“UI事件”的注意要点” 网站介绍
“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等事件以后再讨论
- 上一篇:网络安全与防范
- 下一篇:10个Vue开发技巧「实践」
更多相关网站
- 前端案例·程序员的浪漫:流星雨背景
- 8个非常实用的Vue自定义指令
- 前端必看!10 个 Vue3 救命技巧,解决你 90% 的开发难题?
- 是时候使用iframe延迟加载来提升LCP!
- 10个Vue开发技巧「实践」
- 网络安全与防范
- vue下载excel文件方法
- 前端分享-少年了解过iframe么
- JavaScript代码嵌入HTML的方法、及两者的在执行流程上的细微区别
- 判断变量是否为数组
- JS如何判断文字被ellipsis了?
- ES6页面假死原因及解决方案
- 网络安全之从原理看懂XSS
- VUE前端编程:如何通过全局对话框引入动态组件
- 一文讲透支付宝沙箱的基本应用
- Js基础3:节点创建
- 32个手写JS,巩固你的JS基础(面试高频)
- Chrome 扩展开发:哪种实现方式适合您的需求
- 最近发表
-
- 联想推出 IdeaPad 14s / 15s:均为 3399 元,运行 Win11 系统
- 顶配版ThinkPad X1 Carbon评测
- 联想ThinkPad X1 Carbon评测
- lenovo联想 拯救者-14 加装ssd、内存及win10转移到ssd经验谈
- 联想发布新款耳机鼠标等配件:专为ThinkPad X1设计
- 杜比全景音体验,联想K4 Note在印度正式发布
- 3099 元起,联想推出 IdeaPad 15:约10小时续航,预装 Win11系统
- 联想拯救者Y70、小新Pad Pro 2022发布丨拯救者Y70测评体验
- 千元可定制!联想K4 Note印度发布:杜比全景音体验
- 声临其境 联想TAB2 A10平板联手杜比
- 标签列表
-
- serv-u 破解版 (6)
- 极域电子教室2009 (6)
- 6300主题下载 (1)
- oracle11204下载 (1)
- c++论坛 (14)
- huaweiupdateextractor (4)
- thinkphp6下载 (7)
- 前端论坛 (11)
- mysql 时间索引 (13)
- mydisktest_v298 (35)
- unlocker208 (1)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- 二调符号库 (23)
- oppoa5专用解锁工具包 (8)
- acmecadconverter_8.52绿色版 (25)
- oracle timestamp比较大小 (7)
- chm editor破解版 (7)
- throttlestop防止降频 (9)
- f12019破解 (16)
- 流星蝴蝶剑修改器 (18)
- pygame中文手册 (2)
- 联想杜比音效驱动下载 (10)