深入理解js中的加载事件

JS 高频面试题 js前端面试高频问题 阅读详情

load
load事件:当页面完全加载后(包括所有图片、javascript文件、css文件等外部资源),就会触发window上的load事件

window.onload = function(e) {
    e = e || event;
    var target = e.target || e.srcElement;
    console.log(target);  
}

IE中输出:
这里写图片描述
chrome中输出:
这里写图片描述

load事件不仅发生在document对象,还发生在各种外部资源上面。浏览网页就是一个加载各种资源的过程,图片、样式表、脚本、视频、音频、ajax请求等到。这些资源和document对象、window对象、XMLHttpRequestUpload对象,都会触发load事件
如果页面从浏览器缓存加载,并不会触发load事件
图片和框架iframe也可以触发load事件

  1. 判断css是否加载完毕:

    这里写图片描述
    这里写图片描述

  2. 判断img加载
    要在指定图像的src属性之前先指定事件,图像是从设置了src属性之后开始下载

var img = new Image();
img.onload = function(){
    document.body.appendChild(img)
}
img.src = './image/mission.jpg'

3 . 判断框架iframe加载

<iframe id="test" src="http://cnblogs.com" frameborder="0"></iframe>
<script>
test.onload = function(){
 console.log(666);
}
</script>

4 . script,与图片不同,只有在设置了script元素的src属性并将该元素添加到文档后,才会开始下载js文件,即指定src属性和指定事件处理程序的先后顺序不重要

error
以load相反,error事件是加载失败时触发,凡是可以触发load事件的元素,都可以触发error事件
任何没有通过try-catch处理的错误都会触发window对象的error事件
error事件可以接收三个参数:错误消息、错误所在的URL和行号。多数情况下,只有错误消息有用,因为URL只是给出了文档的位置,而行号所指的代码行既可能出自嵌入的javascript代码,也可能出自外部的文件

//方法1
window.onerror = function(message,url,line){
 alert(message);
}
//方法2
window.addEventListener("error",function(message,url,line){
 alert(message);
});

图像也支持error事件。只要图像的src特性中的URL不能返回可以被识别的图像格式,就会触发error事件。此时的error事件遵循DOM格式,会返回一个以图像为目标的event对象
发生error事件时,图像下载过程已经结束,也就是不能再重新下载了。但是,可以在error事件中,重新设置图像的src属性,指向备用图像的地址

var image = new Image();
document.body.appendChild(image);
image.onerror = function(e){
 image.src = 'smileBackup.gif';
}
image.src = 'smilex.gif';

abort
元素加载中止时,(如加载过程中按下ESC键,停止加载),触发该事件,常用于图片加载

//只有IE浏览器支持
var image = new Image();
image.onabort = function(){
 console.log(111);
}
document.body.appendChild(image);
image.src = './image/img.jpg';

unload
与load事件对应的是unload事件,该事件在文档被完全卸载后触发。一般地,在刷新页面时,会触发该事件
chrome/firefox/safari浏览器会阻止alert等对话框,IE浏览器会阻止console.log()等控制台显示

window.onunload = function(e){
 //chrome报错,firefox静默失败,IE弹出666
 alert(666);
}
window.onunload = function(e){
 //chrome和firefox控制台显示666,IE静默失败
 console.log(666);
}

beforeunload
beforeunload事件在关闭网页或刷新网页时触发。它一般地用来防止用户不小心关闭网页

window.onbeforeunload = function(e){
 e = e || event;
 //IE浏览器显示指定文本,其他浏览器显示默认文本
 e.returnValue = '要离开吗?'; 
}

DOMContentLoaded(jquery的$(document).ready事件)
下面三个写法是等价的:
1. (document).ready(handler)2.().ready(handler)
3. $(handler)

window的onload事件会在页面中的一切资源都加载完毕时触发,但这个过程可能因为要加载的外部资源过多而颇费周折。而DOMContentLoaded事件则在形成完整的DOM树之后就会触发,而不理会图像、javascript文件,css文件或其他资源是否下载完毕,与load事件不同,DOMContentLoaded支持在页面下载的早期添加事件处理程序,即用户可以尽早地与页面进行交互

网页的js脚本是同步执行的,所以定义DOMContentLoaded事件的监听函数,应该放在所有脚本的最前面,否则脚本一旦发生堵塞,将推迟触发DOMContentLoaded事件

要处理该事件,可以为document或window添加响应的事件处理程序,尽管这个事件会冒泡到window,但它的目标实际是document

//IE8不支持
window.addEventListener('DOMContentLoaded',function(e){
 console.log(1);
}

对于不支持该事件的IE8,可以在页面加载期间设置一个时间为0毫秒的超时调用,且必须作为页面的第一个超时调用

`
setTimeout(function(){
console.log(1);
},0)

js之BOM学习,页面加载事件,定时器,js同步异步,location参数,this指向问题 什么是BOM? BOM(Browser Object Model)浏览器对象模型,提供了独立于内容而与窗口进行交互的对象,核心对象是window,学习与浏览器进行交互的一些对象比如怎么后退一个页面,前进一个页面,刷新等。BOM由一系列对象组成,每个对象有其对应的属性和方法,BOM缺乏标准,浏览器厂商再各自浏览器上定义的JS的语法标准化组织是ECMA,DOM是W3C。 var num = 10 log(num) log(window.log)全局变量变成window对象的属性 function fn( 阅读详情

相关推荐

用户和实体行为分析(UEBA)基础指南及解决方案

用户和实体行为分析(UEBA)或异常检测是一种网络安全技术,它使用机器学习(ML)算法来检测网络中用户、主机和其他实体的异常活动。

ITmoster的博客 2893

JS load事件(UI)

当页面完全加载后(包括所有图像、JavaScript文件、CSS文件等外部资源),就会触发window上面的load事件。 有两种定义onload事件处理程序的方式,第一种方式是使用如下的JavaScript代码: EventUtil.addHandler(window,"load",function(event){ alert("loaded!"); });//关于EventUtil这个对象

A__loser的博客 1万+

原理图分享二(信盈达CorexM4核心板STM32F407VGT6)

这是第二张板子的原理图分享,这也是当时大学里学习的一个板子。 原理图分享二(信盈达CorexM4核心板STM32F407VGT6)

让学习成为一种习惯 6901

Javascript:页面加载事件load

Javascript:页面加载事件load

听海边涛声 935

计算机视觉与深度学习实战:以Python为工具,基于帧间差法进行视频目标检测

计算机视觉是一门研究如何使机器从数字图像或视频中提取、分析和理解有用信息的学科。它涉及图像处理、计算机图形学、人工智能等多个领域的知识。通过计算机视觉技术,我们可以实现图像的识别、分类、目标检测等功能。本文介绍了计算机视觉与深度学习的基本概念和原理,并以Python为工具,基于帧间差分法实现了视频目标检测。帧间差分法具有算法实现简单、程序设计复杂度低、对光线等场景变化不太敏感等优点,因此在实际应用中得到了广泛的应用。然而,帧间差分法也存在一些局限性,如对于缓慢移动或静止的物体检测效果不佳。

一个好知识的传播者 1256

基于LightGBM和多模型融合的量化交易研究:沪深300为例【附代码】

📊 数据科学与大数据专业 | 数据分析与模型构建 | 数据驱动决策✨ 专业领域:数据挖掘与清洗大数据处理与存储技术机器学习与深度学习模型数据可视化与报告生成分布式计算与云计算数据安全与隐私保护💡 擅长工具:Python/R/Matlab 数据分析与建模Hadoop/Spark 大数据处理平台SQL数据库管理与优化Tableau/Power BI 数据可视化工具TensorFlow/PyTorch 深度学习框架✅数据科学与大数据技术毕业论文【数据】

lagougongzuoshi的博客 1671

load事件

javaScript中最常用到的一个事件就是load。当页面完全加载后(包括所有图像、javaScript文件、css文件等外部资源),就会触发window上边的load事件。 window: window.addEventListener('load', function(e) { console.log('页面完全加载完毕!') }, false) img图像: 图像上也可以触发load事件。 我们可以在图片加载完毕后做一些事情: <img src="./1.jp.

记录点滴 4703

RAW、RGB、YUV图像格式的采样与存储原理详解

本文详细解析了RAW、RGB和YUV三种核心图像格式的采样与存储原理。RAW是传感器原始数据,信息完整但需后期处理;RGB直接对应显示,直观但数据量大;YUV通过亮色分离与色度下采样,在保证观感的前提下大幅提升传输与存储效率,是视频编码与流媒体的主流格式。理解其差异是图像处理与视频开发的基础。

e4f5g6h7的博客 517

js load()方法传递参数及获取参数

我们访问后台获取到的数据有的时候是[{"name":"value","sex":"value","age":"value"}] 而js的load()方法完整的是load("url",data,function(){}) 只需把访问后台访问的值var json = eval('(' + pat + ')');转换成对象, 在a.jsp中的js写到load(&quot

baseli的博客 2万+

INMP441麦克风与ESP32的I2S音频采集实战指南

本文提供了INMP441数字麦克风与ESP32开发板通过I2S接口进行高质量音频采集的完整实战指南。详细讲解了硬件连接、软件配置、数据读取及基础处理,并分享了常见的避坑技巧与性能优化建议,帮助开发者快速构建物联网音频应用。

weixin_28396629的博客 599

2026 AI Agent Harness Engineering 生态报告:开源工具链的现状与未来趋势

IEEE P2863-2025《通用人工智能自主代理技术架构与评估规范》于2025年11月正式发布,将AI Agent(通用人工智能自主代理)定义为:一种具备感知(Perception)、记忆(Memory)、推理(Reasoning)、规划(Planning)、行动(Action)五大核心能力闭环,能够在无显式指令覆盖全部环节的前提下,自主完成特定领域或开放领域复杂任务的智能实体。

AI 算法实战派 498

javascript基础从小白到高手系列一百四十七:load 事件

load 事件可能是JavaScript 中最常用的事件。的浏览器中,event.target 会被设置为document,但在IE8 之前的版本中,不会设置这个对象的。这里使用JavaScript 为图片指定了load 事件处理程序。这里调用Image 构造函数创建了一个新图片,并给它设置了事件处理程序。图片上也会触发load 事件,包括DOM中的图片和非DOM中的图片。一般来说,任何在window 上发生的事件,都可以通过给元素上对应的属性赋值来指定,元素,并为这个元素设置了load 事件处理程序。

wanmeijuhao的博客 788

46、大数据助力SDN优化流量管理与控制器

本文探讨了大数据在软件定义网络(SDN)中的应用,重点分析了如何利用大数据技术优化SDN控制器的可扩展性和弹性。通过介绍SDN控制器的核心功能及其面临的挑战,提出了集中式、分布式、混合式和分层式控制器放置策略,并结合大数据分析系统架构与技术,详细阐述了在控制器放置优化、流聚合和备份路径识别等场景中的实际应用。文章还给出了大数据分析在SDN控制器优化中的操作流程与优势,展望了未来结合人工智能与物联网的发展方向,强调了数据安全与算法效率的重要性。

xx56789的博客 87

js 常用技巧(添加中...)

1,页面一开始加载js函数 方法1,body的onload属性中指定 方法2,在&lt;script&gt;&lt;/script&gt;中写函数名,如  &lt;script&gt;  test();   function test(){   ...  } &lt;/script&gt; 2,a href的一个js&lt;a style="color: blue;cursor: hand"...

hkjdkl的博客 220

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JavaScript笔记(随缘更新)

var const let var 存在变量提升 即变量可以在声明之前使用 值为undefined var声明的变量没有块级作用域 const 不存在变量提升 存在块级作用域 常用来声明常量,且常量不可修改,必须初始化 let 不存在变量提升 存在块级作用域 不允许在相同作用域内重复声明同一个变量 Set数据结构 ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成 Set 数据结构。 通过add()方法向 Set 结构加入成员,结

阿宇的博客 192

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JavaScript事件总结

JavaScript事件总结 1、JavaScript事件 文档加载、事件对象、事件冒泡、事件委派、事件绑定、事件传播、 事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间 JavaScript 与 HTML 之间的交互是通过事件实现的。 对于 Web 应用来说,有下面这些代表性的事件:单击事件、鼠标移入移 出事件、键盘按下/弹起事件等等 2、事件就是用户与浏览器的交互行为 onclick 鼠标...

weixin_44619280的博客 158

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

javascript中常见事件

** javascript中常见事件 事件监听机制: 概念:某些组件被执行了某些操作后,触发某些代码的执行。 事件:某些操作。如: 单击,双击,键盘按下了,鼠标移动了 事件源:组件。如: 按钮 文本输入框… 监听器:代码。 注册监听:将事件,事件源,监听器结合在一起。 当事件源上发生了某个事件,则触发执行某个监听器代码。 常见的事件: 点击事件: onclick:单击事件 ondbl...

码破丶苍穹 137

学到哪,总结到哪之JavaScript部分事件

点击事件: 1. onclick:单击事件 2. ondblclick:双击事件 2. 焦点事件 1. onblur:失去焦点 2. onfocus:元素获得焦点。 3. 加载事件: 1. onload:一张页面或一幅图像完成加载。 4. 鼠标事件: 1. onmousedown 鼠标按钮被按下。 2. onmouseup 鼠标按键被松开。 3. onmousemove 鼠标被...

qq_44900075的博客 182

JavaScript中事件及其详解

JS的dom操作可以改变网页内容,结构和样式,我们就可以利用dom操作元素来改变元素里面的内容属性等。:回调函数的特点:自己把这个函数代码写出来了,但是这个函数不是自己负责调用,由其他程序负责调用该函数。onmouseover和onmouseenter的区别:前者会影响子元素的触发事件,后者不会影响。onmouseover:鼠标移入某个元素触发。【修改元素属性】:先获取元素,注册事件,处理程序,然后直接调用元素的属性赋值。onkeyup:某个键盘按键被松开。事件源:事件被触发的对象,就是谁触发了这个事件。

qq_46642326的博客 1339

JavaScript — DOM的增删改查、节点、事件、文档的加载

目录 一、DOM 二、节点 三、事件 四、文档的加载 五、DOM查询 1.获取元素节点 2.获取元素节点的子节点? 3.获取父节点和兄弟节点 4. 其他DOM查询的方法 常用搜索方法总结: 5.matches()与closest() 六、DOM的增删改? 创建新节点的方法 插入和移除节点的方法 七、DocumentFragment 一、DOM DOM,全称Document Object Model 文档对象模型。 JS中通过DOM来对HTML文档进行操作。只要理解了DOM就可以随心所欲的操作WEB页面。

embelfe_segge的博客 438

javaAPI---BOM

BOM BOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 window。 BOM 由一系列相关的对象构成,并且每个对象都提供了很多方法与属性。 BOM 缺乏标准,JavaScript 语法的标准化组织是 ECMA,DOM 的标准化组织是 W3C,BOM 最初是Netscape 浏览器标准的一部分。 DOM 文档对象模型 DOM 就是把「文档」当做一个「对象」来看待 DOM 的顶级对象是 document DOM 主..

qq_45598568的博客 466

JavaWEB笔记10 Javascript中的事件

JavaWEB笔记10 Javascript中的事件 文章目录JavaWEB笔记10 Javascript中的事件一.表单验证:二.事件类型及演示:1.键盘事件:2.表单事件:3.鼠标事件:4.页面加载事件:三.事件对象的属性:四.事件流,事件捕获和事件委托:1.DOM事件流:2.事件捕获和事件委托:五.案例一:鼠标跟随图片效果六.案例二:禁止右键菜单和禁止复制粘贴:七.案例三:省市二级联动选框:八.案例四:秒杀倒计时效果: 回顾在笔记09中对事件的基本介绍有:事件的基本类型,事件的绑定和解绑等,结合上节笔

RainOnTheMoon的博客 242

js常用事件

动态注册: 是指先通过 js 代码得到标签的 dom 对象,然后再通过 dom 对象.事件名 =function(){}这种形式赋于事件响应后的代码,叫动态注册。静态注册: 通过 html 标签的事件属性直接赋于事件响应后的代码,这种方式我们叫静态注册。onmouseover 鼠标被移到某元素之上。onmousedown 鼠标按别扭被按下。onmouseup 鼠标按钮被松开。onmousemove 鼠标被移动。onsubmit 确认按钮被点击。onreset 重置按钮被点击。onclick:单击事件。

chaochao__的博客 220

JavaScript和HTML之间的交互是通过用户和浏览器操作界面引发的事件来处理事件响应,让网页交互

js的事件 鼠标单击事件( onclick ) 鼠标经过事件(onmouseover) 鼠标移开事件(onmouseout) 光标聚焦事件(onfocus) 失焦事件(onblur) 内容选中事件(onselect) 文本框内容改变事件(onchange) 加载事件(onload) 卸载事件(onunload) ...

Vison_的博客 925

js运行客户端程序

<br /> new activeXobjext('wscript.shell').run(command,1,true) ,<br />1、js的安全控制,需要将ie的安全设置中的“运行运行不信任的activeXobjex控件“设置为允许<br />2、程序的路径command中包含空格,导致找不到程序。需要在command之前添加 "。即"/""+command<br /> 

oraclhr的专栏 526

秋招面试准备 JS1

1几个很实用的BOM属性对象方法 参考27、BOM的属性对象方法_y_xiuzhu的博客-优快云博客 1 BOM的属性对象方法 BOM的对象用于访问浏览器的功能,提供了当前窗口中加载的文档有关的信息,和一些导航功能。 BOM主要用于管理 ...

yuhongbei的博客 363
上一篇: javascript版括号匹配
下一篇: javascript 小球碰撞
ruby_xc
博客等级 码龄10年 10粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值