本文系统整理了 JavaScript 中常见的触发事件,涵盖单击、焦点切换、页面加载、鼠标悬停、键盘按键、表单提交、滚动控制及数据绑定等核心场景。通过具体代码示例,解析 onclick、onchange、onfocus、onload 等关键事件的触发条件与应用方式,帮助开发者快速掌握前端交互逻辑。
鼠标与基础交互事件
1. 单击事件:onclick
当用户点击鼠标左键时触发此事件。此时,绑定在 onclick 属性上的处理程序或代码块将被执行。
示例:<input type="button" value="打开页面" onlick="window.open('xxxx.html','newwindow','width=456,height=230,toolbar=no,menubar=no,scrollbars=yes');">
2. 改变事件:onchange
该事件在文本框(text)或文本域(textarea)的内容发生更改,或者下拉选择框(select)的选项状态发生变化时触发。
示例:<textarea name="liuyan" rows=5 cols=70 value=" " onchange=alert("您在文本框中添加了新的内容")>
3. 选中事件:onselect
当用户选中 text 或 textarea 元素中的文本内容时,会触发此事件。
示例:<ipnut type="text" value="默认信息" onselect=alert("您选中了文本框中的文字")>
4. 获得焦点事件:onfocus
当用户点击 text、textarea 或 select 对象,使光标进入该输入框或选择框时触发。
示例:<select name="zhengjian" onfocus="alert("我成为焦点")>
5. 失去焦点事件:onblur
与获得焦点相对,当 text、textarea 或 select 对象失去焦点并退出当前激活状态时触发。
页面加载与生命周期事件
6. 载入文件事件:onload
当页面或外部资源加载完成时触发。onload 常用于在页面首次加载时检测 Cookie 值并赋值给变量,以便脚本使用。虽然它是 window 对象的事件,但在 HTML 中通常定义在 <body> 标签内。
示例:<body onload=alert("正在加载页面,请等待...")>
7. 卸载文件事件:onunload
与 onload 相反,当用户离开当前 Web 页面时触发。此事件可用于更新 Cookie 状态或执行清理操作。
示例:<body onunload="confirm("你确定要离开本页?")>
8. 鼠标覆盖事件:onmouseover
当鼠标指针移动到元素上方时触发。
示例:<input type="boutton" value="按钮" onmouseover="window.status='请您注意下面的状态栏'; return true">
9. 鼠标离开事件:onmouseout
当鼠标指针离开元素时触发。常与 onmouseover 配合使用,以实现动态按钮或悬停效果。
键盘与鼠标通用事件
10. 一般事件
ondblclick:鼠标双击事件。
mousedown:鼠标按键按下时激活的事件。
mouseup:鼠标按键按下后松开时触发的事件。
mousemove:鼠标在元素上移动时触发的事件。
onkeypress:当键盘上的某个键被按下并释放时触发,要求页面内存在激活对象。
onkeydown:当键盘上某个键被按下时触发,要求页面内存在激活对象。
onkeyup:当键盘按键被放开时触发,要求页面内存在激活对象。
页面状态与窗口控制事件
11. 页面相关事件
onabort:图片下载过程中被用户中断时触发。
onbeforeunload:当前页面内容即将被改变(如刷新或关闭)时触发。
onerror:捕捉页面因脚本错误等原因导致的异常。
onmove:浏览器窗口被移动时触发。
onresize:浏览器窗口大小改变时触发。
onscroll:浏览器滚动条位置发生变化时触发。
onstop:浏览器“停止”按钮被按下,或正在下载的文件被中断时触发。
表单与滚动字幕事件
12. 表单相关事件
onreset:当表单中 reset 属性被激活(重置按钮被点击)时触发。
onsubmit:表单被提交时触发。
13. 滚动字幕事件
onbounce:当 marquee 元素内的内容移动至显示范围之外时触发。
onfinish:当 marquee 元素完成内容显示后触发。
onstart:当 marquee 元素开始显示内容时触发。
内容编辑与数据绑定事件
14. 编辑事件
onbeforecopy:在页面当前选中的内容复制到系统剪贴板之前触发。
onbeforeupdate:当用户尝试从系统剪贴板粘贴内容时,通知目标对象。
oncontextmenu:当按下鼠标右键出现上下文菜单,或通过键盘快捷键触发菜单时触发。
<body oncontentmenu="return false">:用于禁止使用鼠标右键菜单。
oncopy:当页面当前选中的内容被复制后触发。
oncut:当页面当前选中的内容被剪切时触发。
onpaste:当内容被粘贴时触发。
ondrag:当某个对象被拖动时触发。
ondragend:当鼠标拖动结束(即按键释放)时触发。
15. 数据绑定事件
onafterupdate:当数据完成从数据源到对象的传送后触发。
oncellchange:当数据来源发生变化时触发。
ondataavailable:当数据接收完成时触发。
ondatasetchanged:当数据源中的数据发生变化时触发。
ondatasetcomplete:当数据源的全部有效数据读取完毕时触发。
onerrorupdate:当使用 onbeforeupdate 事件取消数据传送时,替代 onafterupdate 触发。
onrowenter:当当前数据源数据发生变化且有新的有效数据时触发。
onrowexit:当当前数据源的数据即将发生变化时触发。
onrowsdelete:当当前数据记录将被删除时触发。
onrowsinserted:当数据源即将插入新数据记录时触发。
打印与外部辅助事件
16. 外部事件
onafterprint:文档打印完成后触发。
onbeforeprint:文档即将打印时触发。
onhelp:当用户按下 F1 键或点击浏览器“帮助”按钮时触发。