关于JavaScript使用window.onload的解释说明

news2024/11/24 3:38:01

文章目录

  • window.onload简介
  • 为什么使用window.onload()
    • 绑定有名的函数
    • 绑定执行多个函数
  • window.onload 与 jQuery ready() 区别

window.onload简介

window.onload() 方法用于在网页加载完毕后立刻执行的操作,即当 HTML 文档加载完毕后,立刻执行某个方法。

window.onload() 通常用于 元素,在页面完全载入后(包括图片、css文件等等)执行脚本代码。
只有一个要执行的函数语法:

window.onload = funcRef;

在页面加载完成后 funcRef 方法会被调用。

有多个要执行的函数语法:

window.onload=function(){
    Func1();
    Func2();
    Func3();
    .....
}

在页面加载完成后自动依次执行 Func1、Func2、Func3。

为什么使用window.onload()

因为 JavaScript 中的函数方法需要在 HTML 文档渲染完成后才可以使用,如果没有渲染完成,此时的 DOM 树是不完整的,这样在调用一些 JavaScript 代码时就可能报出"undefined"错误。

可以试试下面的代码有什么效果

<!DOCTYPE html>   
<html>   
<head>   
<meta charset=" utf-8">   
<title>没有使用 window.onload() 测试</title>
<style type="text/css">
#bg{
    width:120px;
    height:120px;
    border:4px solid blue;
}
</style>
<script type="text/javascript">
document.getElementById("bg").style.backgroundColor="#F00";
</script>
</head>
<body>
    <div id="bg"></div>
</body>
</html>

以上实例我们要实现的效果是将 div 的背景颜色设置为 #F90,但是并没有实现此效果,因为代码是顺序执行的,当执行到 document.getElementById("#bg").style.backgroundColor="#F00" 的时候,还没有加载到此 div 对象,所以背景颜色没有设置成功。报错信息如下:
在这里插入图片描述
我们可以添加 window.onload 就可以正常执行,代码修改如下:

<!DOCTYPE html>   
<html>   
<head>   
<meta charset=" utf-8">   
<title>使用 window.onload() 测试</title>
<style type="text/css">
#bg{
    width:120px;
    height:120px;
    border:4px solid blue;
}
</style>
<script type="text/javascript">
window.onload=function(){
    document.getElementById("bg").style.backgroundColor="#F00";
}
</script>
</head>
<body>
    <div id="bg"></div>
</body>
</html>

绑定有名的函数

window.onload 事件绑定事件处理函数,绑定的是一个匿名函数,当然也可以绑定具名函数,代码实例如下:

<!DOCTYPE html>   
<html>   
<head>   
<meta charset=" utf-8">   
<title>使用 window.onload() 绑定具体函数</title>
<script type="text/javascript">
 
// 函数名为 runoob
window.onload=function runoob(){
  document.write("菜鸟教程 -- 学的不仅是技术,更是梦想!!!");
}
</script>
</head>
<body>
  
</body>
</html>

绑定执行多个函数

有多个要执行的函数实例:

<!DOCTYPE html>   
<html>   
<head>   
<meta charset=" utf-8">   
<title>使用 window.onload() 执行多个函数</title>
<style type="text/css">
#bg{
  width:100px;
  height:100px;
  border:2px solid blue;
}
</style>
<script type="text/javascript">
window.onload=function(){
    function runoob1(){
        document.getElementById("bg").style.backgroundColor="#F00";
    }
    function runoob2(){
        document.getElementById("bg").style.width="200px";
        document.getElementById("bg").style.height="200px";
    }
    runoob1();
    runoob2();
}
</script>
</head>
<body>
    <div id="bg"></div>
</body>
</html>

window.onload 与 jQuery ready() 区别

window.onload = function () {};    // JavaScript 
$(document).ready(function () {}); // jQuery

以上两种方式都是在 HTML 文档完毕后再执行 DOM 操作,但它们还是有一定的区别,如下图:
在这里插入图片描述

参考:菜鸟教程JavaScript window.onload

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/360677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果手机怎么拦截垃圾短信,亲测有效的方法,图文教学

​当小伙伴的苹果手机频繁收到垃圾短信时&#xff0c;不仅会影响正常的日常生活&#xff0c;还有可能泄露个人信息&#xff0c;给小伙伴带来不必要的麻烦。苹果手机怎么拦截垃圾短信&#xff1f;本文小编将介绍苹果手机拦截垃圾短信的实用技巧&#xff0c;帮助你轻松应对垃圾短…

PPT怎么做都丑?试试这个自动化工具吧,酷炫报表的救星!

昨晚在网上冲浪的时候&#xff0c;看到某位字节员工在脉脉上发帖&#xff1a;31岁&#xff0c;被PPT弄丢了工作&#xff0c;理由是PPT做得太丑&#xff0c;配不上公司形象&#xff0c;建议人力评估&#xff0c;安排离职沟通。 其实看到这时&#xff0c;我并没有多大得感触。因…

Ceres的自动求导实现原理剖析

目录数学原理实现原理总结首先注意数值求导和自动求导在使用的时候的不同之处。 实际上&#xff0c;正是自动求导这个地方使用了类模板&#xff0c;导致它不仅可以传入参数&#xff0c;还可以传入Jet类型的数据&#xff0c;从而实现了参数的雅可比矩阵的计算&#xff0c;完成自…

centos7 搭建ELK(elasticsearch、logstash、kibana)

1、下载安装包 使用华为镜像站下载速度很快&#xff0c;华为镜像站&#xff1a;https://mirrors.huaweicloud.com/home&#xff0c;下载时需要保证版本一致 2、安装elasticsearch 解压到当前目录 [rootlocalhost elk]# tar zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz 安…

RFID盘点软件为企业提供RFID固定资产管理方案

随着科技的发展&#xff0c;固定资产管理系统也经过了一些变革&#xff0c;从刚开始的单机版逐渐发展成SaaS版本&#xff0c;物联网版本等。从刚开始只支持条形码到支持二维码、RFID码。RFID固定资产管理系统上线后&#xff0c;通过给每个实物资产绑定一个RFID码标签后&#xf…

2022-06-16_555时基的迷人历史和先天缺陷!

https://www.eet-china.com/news/magazine220608.html 555时基的迷人历史和先天缺陷&#xff01; 发布于2022-06-16 03:39:12 LARRY STABILE 流行数十年的555时基&#xff0c;业内不知晓的工程师应该寥寥无几&#xff01;几乎所有的数字电路教材中&#xff0c;都有该芯片的身影…

华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】

使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12201821.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 分糖果 小明从糖果…

第六章.卷积神经网络(CNN)—CNN的实现(搭建手写数字识别的CNN)

第六章.卷积神经网络(CNN) 6.2 CNN的实现(搭建手写数字识别的CNN) 1.网络构成 2.代码实现 import pickle import matplotlib.pyplot as plt import numpy as np import sys, ossys.path.append(os.pardir)from dataset.mnist import load_mnist from collections import Order…

实时数仓Hologres新一代弹性计算组实例技术揭秘

作者&#xff1a;王奇&#xff08;花名慧青&#xff09; 阿里云Hologres研发 随着实时数仓在业务生产系统的普及&#xff0c;资源弹性、资源隔离等保障业务稳定性方面的技术需求开始变得越来越迫切。Hologres在保障业务方面持续优化核心技术竞争力&#xff0c;过去一年中&…

Facebook广告投放的正确姿势:玩转目标定位

如果你正在投放 Facebook广告&#xff0c;那么你一定有过这样的经历&#xff1a;明明设置了目标受众&#xff0c;但是广告却没有带来转化。在这方面&#xff0c;你可能忽略了一个很重要的因素——目标定位。想要打造高质量、高曝光率的 Facebook广告&#xff0c;如何才能成功实…

「TCG 规范解读」第7章 TPM工作组 TPM 总结

可信计算组织&#xff08;Ttrusted Computing Group,TCG&#xff09;是一个非盈利的工业标准组织&#xff0c;它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立&#xff0c;并采纳了由可信计算平台联盟&#xff08;the Trusted Computing Platform Alli…

90%的人都理解错了HTTP中GET与POST的区别

Get和Post是HTTP请求的两种基本方法&#xff0c;要说它们的区别&#xff0c;接触过WEB开发的人都能说出一二。 最直观的区别就是Get把参数包含在URL中&#xff0c;Post通过request body传递参数。 你可能自己写过无数个Get和Post请求&#xff0c;或者已经看过很多权威网站总结…

数据分析-2.必会的六大实用模型

对于刚刚接触数据分析的人来说&#xff0c;经常会有这样的困惑和疑问&#xff1a;数据分析究竟难不难&#xff1f;难的话难在哪&#xff1f;为什么有时候作分析不知道从何下手&#xff0c;只能眉毛胡子一把抓&#xff1f; 其实就连我这种已经在数据分析行业浸淫十几年的老油条…

JavaSE学习day9 集合(基础班结束)

1.ArrayList 集合和数组的优势对比&#xff1a; 长度可变 添加数据的时候不需要考虑索引&#xff0c;默认将数据添加到末尾 不能存基本数据类型。只能通过包装。 1.1ArrayList类概述 什么是集合 提供一种存储空间可变的存储模型&#xff0c;存储的数据容量可以发生改变 Ar…

shell脚本中那些关于时间的处理方案,你都掌握了吗?

文章目录前言一. linux中关于时间的命令有哪些&#xff1f;1.1 命令一: hwclock命令二&#xff1a;date的那些事二. 时间命令在脚本中的应用2.1 用date命令实现统计执行时间的脚本2.2 time命令3. sleep命令总结前言 大家好&#xff0c;我是互联网老辛&#xff0c;专注云原生领…

[Css]Grid属性简单陈列(适合开发时有基础的快速过一眼)

[css进阶]Grid属性简介 文章目录[css进阶]Grid属性简介典型需求网格容器的属性displaygrid-template-columns和grid-template-rowsgrid-template-areasgrid-templategrid-column-gap grid-row-gapgrid-gapjustify-itemsalign-itemsjustify-contentalign-contentgrid-auto-colum…

【面试题】ES6 如何将 Set 转化为数组

大厂面试题分享 面试题库后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★地址&#xff1a;前端面试题库Set 是 ES6 中新增的一种集合类型&#xff0c;类似于数组&#xff0c;但其成员的值是唯一的&#xff0c;即不会重复。关于Set&#xff0c;可以阅…

Leaf说明

什么是Leafleaf是叶子的意思我们使用的Leaf是美团公司开源的一个分布式序列号(id)生成系统我们可以在Github网站上下载项目直接使用为什么需要Leaf上面的图片中是一个实际开发中常见的读写分离的数据库部署格式专门进行数据更新(写)的有两个数据库节点它们同时新增数据可能产生…

ThinkPHP5篮球培训报名系统

有需要请私信或看评论链接哦 可远程调试 ThinkPHP5篮球培训报名系统一 介绍 此篮球培训报名系统基于ThinkPHP5框架开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。用户可注册登录&#xff0c;充值&#xff0c;报名&#xff0c;反馈信息等&…

手摸手快速入门 正则表达式 (Vue源码中的使用)

vue2源码 在 vue2 源码的 src\compiler\parser\html-parser.js 文件中 里面有大量的正则表达式&#xff0c;如下图 可以看到非常的长&#xff0c;不是我说&#xff0c;就前几行&#xff0c;如果没有相关的 正则表达式 的工具&#xff0c;我可能就被劝退了&#x1f62d; 这里…