window.onload 事件 红太狼 2020-05-23 18:38 1256阅读 0赞 # window.onload 事件 本文将结合代码实例详细介绍一下 window.onload 事件的用法。 页面中很多JavaScript代码往往需要对应的文档结构或者内容加载完毕才能执行。 否则可能会出现一些令初学者比较困惑的现象。 首先看一段代码实例: ```html <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="https://www.dandelioncloud.cn/" /> <title>蒲公英云</title> <style type="text/css"> #ant{ width:100px; height:100px; border:2px dotted #ccc; } </style> <script> let oDiv=document.getElementById("ant"); oDiv.style.backgroundColor="#F90"; </script> </head> <body> <div id="ant"></div> </body> </html> ``` 上述代码会报错,谷歌开发者工具控制台截图如下:  代码分析如下: (1).代码本意是将div的背景颜色设置为 "#F90",但是并未成功,且报错。 (2).由于顺序执行,当执行到 document.getElementById("ant") 时,div 元素并未加载。 (3).获取 div 元素对象就失败了,oDiv==null,于是会出现图片中的错误。 可以采用如下三种方式解决上述问题: (1).JavaScript 代码放置于页面的底部,当执行 JavaScript 代码的时候,div 元素自然已经加载解析完毕。 (2).将设置 div 元素的相关代码放置于 window.onload 事件处理函数中。 (3).将设置 div元 素的相关代码放置于DOMContentLoaded事件处理函数中(后面会有介绍)。 下面采用本文的主角 window.onload 来解决上述问题,代码修改如下: ```html <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="https://www.dandelioncloud.cn/" /> <title>蒲公英云</title> <style type="text/css"> #ant{ width:100px; height:100px; border:2px dotted #ccc; } </style> <script> window.onload=function(){ let oDiv=document.getElementById("ant"); oDiv.style.backgroundColor="#F90"; } </script> </head> <body> <div id="ant"></div> </body> </html> ``` 上述代码运行效果截图如下:  代码成功实现预期效果,此时window.onload事件的功能得以体现。 此事件在文档内容完全加载完毕时触发,所以将获取和设置div元素的代码放置于window.onload事件处理函数之中,可以确保在设置div背景颜色的时候,div元素已经加载完毕。 **事件处理函数绑定:** onload 事件准确的将应该是 load 事件,前面加 "on" 是注册事件处理函数的一种方式。 **window.onload事件缺点:** 此事件需要在文档内容完全加载完毕后才会触发,比如需要加载完毕CSS文件或者图片等资源。 很多情况下,图片等资源加载完毕不是必须的,只需要文档结构加载和解析完毕即可。 假设前文设置div元素背景色的需求不变,并且页面有大量图片要加载,如果等待图片完全加载完毕再进行背景色设置,那么设置操作就稍显滞后,也不人性化,此种情况下可以利用 DOMContentLoaded 事件实现上述功能。
相关 【JQuery_事件】事件_语法_键盘事件_鼠标事件_ 0.事件 0.0 事件四要素 1. 事件源 2. 事件绑定处理函数 3. 查找修改元素 4. 修改元素 0.0.0事件源 document ゞ 浴缸里的玫瑰/ 2024年04月03日 10:16/ 0 赞/ 129 阅读
相关 jQuery面试题-jQuery 添加元素的方法?jQuery(document)ready() 和 windowonload有什么区别? jQuery 添加元素的方法 append() - 在被选元素的结尾插入内容(被选元素内部) prepend() - 在被选元素的开头插入内容(被选元素内部) 短命女/ 2023年05月29日 09:29/ 0 赞/ 60 阅读
相关 JavaScript 事件类型(键盘事件,鼠标事件,焦点事件) 键盘事件 鼠标事件 焦点事件 键盘事件 <table> <thead> <tr> <th>事件</th> <th>发生时机< 小鱼儿/ 2023年01月16日 03:29/ 0 赞/ 208 阅读
相关 JavaScript 事件,事件流,事件委托 事件 HTML事件 HTML 事件可以是浏览器行为,也可以是用户行为。HTML 元素中可以添加事件属性,使用 JavaScript 代码来添加 HTML 元素。 示 今天药忘吃喽~/ 2023年01月13日 08:57/ 0 赞/ 274 阅读
相关 事件绑定、事件传播、事件捕获、事件冒泡、自定义事件 DOM事件三种级别 DOM0级事件 DOM0 级时间分两种,一是直接在标签内直接添加执行语句,二是定义执行函数。 <input type="text" id 布满荆棘的人生/ 2022年12月18日 05:56/ 0 赞/ 383 阅读
相关 事件流----事件冒泡 事件捕获 DOM事件流:同时支持两种事件模型:捕获型事件和冒泡型事件. 1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。 IE 拼搏现实的明天。/ 2022年08月21日 14:49/ 0 赞/ 375 阅读
相关 如何监听页面就绪(早于windowonload) 原文地址:http://www.javascriptkit.com/dhtmltutors/domready.shtml 在DOM树就绪时就启动页面执行JavaScript 谁践踏了优雅/ 2022年07月13日 12:29/ 0 赞/ 267 阅读
相关 JS中在windowonload中调用function函数遇见的问题 参考文章:[https://blog.csdn.net/c\_p\_h/article/details/63684510][https_blog.csdn.net_c_p_h_ ╰半橙微兮°/ 2022年04月23日 13:26/ 0 赞/ 342 阅读
相关 Jquery美元符(document)ready和windowonload的区别 [\[原文跳转\]jquery $(document).ready() 与window.onload的区别][jquery _document_.ready_ _window. 比眉伴天荒/ 2021年12月03日 13:53/ 0 赞/ 375 阅读
相关 各种事件(html事件,鼠标事件,键盘事件,焦点事件以及阻止默认事件) HTML事件 onload 事件 页面或图片加载完成后执行 只有图片和页面可以执行 window.οnlοad=function(){ //整个 短命女/ 2021年10月24日 03:24/ 0 赞/ 592 阅读