JavaScript从入门到精通系列第三十七篇:详解JavaScript中文档的加载顺序

文章目录

一:文档加载说明

1:回顾一个代码

2:问题分析和说明

二:如何给JS换个位置?

1:过程分析

2:代码编写

3:运行结果

4:解释说明


大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。

孙哥链接:孙哥个人主页
作者简介:一个颜值99分,只比孙哥差一点的程序员
本专栏简介:话不多说,让我们一起干翻JavaScript

本文章简介:话不多说,让我们讲清楚JavaScript的事件和事件响应

一:文档加载说明

1:回顾一个代码

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script type="text/javascript">var btn = document.getElementById("btn");console.log(btn);//为按钮对应事件绑定函数。//绑定单机事件(给对象添加属性,也就是给对象属性添加函数)//这样做就是当事件被触发时,其对应的函数会被触发btn.onclick = function(){alert("妈的,你还点!");}</script></head><body><button id = "btn" >这是一个按钮</button></body>
</html>

        这个代码运行会报错滴,是运行不过去滴。大家可以试试。 

2:问题分析和说明

        我们这样写代码是有问题的,代码真正运行的时候也会报错。这个原因呢是因为我们的js代码跑到了title里边。

        浏览器在加载一个页面的时候是按照自上而下的顺序加载。读取到一行就运行一行代码。所以, 我们的按钮定义在后,js代码执行再前,这不就有大问题了么。所以,真正的问题是在这里。

        所以,将js代码编写到我们页面的下边就是为了页面加载完毕之后,在执行js代码。

二:如何给JS换个位置?

1:过程分析

        我们可以把js代码写到title的位置,只需要把这些定义的内容放到整个页面加载完毕这个监听事件中去即可。

        我们现在需要找到这个事件,为这个时间找到绑定函数。这个事件就是onload:一张页面或者一个图像加载完成。

        这个时间绑定给哪个对象呀?这个对象可定是window对象。所以,接下来我们给window绑定一个onload事件绑定一个事件函数。

2:代码编写

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script type="text/javascript">window.onload = function(){var btn = document.getElementById("btn");console.log(btn);btn.onclick = function(){alert("妈的,给老子爬!");}}</script></head><body><button id = "btn" >这是一个按钮</button></body>
</html>

3:运行结果

4:解释说明

        window.onload这个监听事件,我们往上绑定的事件函数会在整个页面加载加载完毕之后完成。我们有任何想要页面加载完毕之后再做的操作都可以丢到这里边去。 

        在代码执行的之后,页面还没有加载,页面还没加载的时候,我们的Dom对象也没有加载。解决方式要么就是将JS代码写到最后,要么就是把JS代码写到window.onload里边。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 事务是什么?又和MySQL事务有什么区别?

目录 1. Redis 事务的概念 2. Redis 事务和 MySQL事务的区别&#xff1f; 3. Redis 事务常用命令 1. Redis 事务的概念 下面是在 Redis 官网上找到的关于事务的解释&#xff0c;这里划重点&#xff0c;一组命令&#xff0c;一个步骤。 也就是说&#xff0c;在客户端与 Redi…

【QT系列教程】之二创建项目和helloworld案例

文章目录 一、QT创建项目1.1、创建项目1.2、选择创建项目属性1.3、选择路径和项目名称1.4、选择构建项目类型1.5、布局方式1.6、翻译文件&#xff0c;根据自己需求选择1.7、选择套件1.8、项目管理&#xff0c;自行配置1.9、配置完成&#xff0c;系统自动更新配置 二、QT界面介绍…

Java Stream 的常用API

Java Stream 的常用API 遍历&#xff08;forEach&#xff09; package com.liudashuai;import java.util.ArrayList; import java.util.List;public class Test {public static void main(String[] args) {List<Person> userList new ArrayList<>();userList.ad…

win10 下 ros + Qt 工程CMakeLists.txt

win10 下 ros Qt 工程CMakeLists.txt 系统&#xff1a;win10 ros: melodic Qt: 5.12.12 源码目录: D:\workspace\catkin_qt 示例代码 https://github.com/ncnynl/ros-qt.git 由于示例代码是Qt4 &#xff0c;目前我是用QT5,所以CMakeLists.txt 修改如下 CMakeLists.txt #####…

排序 算法(第4版)

本博客参考算法&#xff08;第4版&#xff09;&#xff1a;算法&#xff08;第4版&#xff09; - LeetBook - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 本文用Java实现相关算法。 我们关注的主要对象是重新排列数组元素的算法&#xff0c;其中每个元素…

DDR3内容相关

1、DDR3 全称第三代双倍速率同步动态随机存储器。 特点&#xff1a;①掉电无法保存数据&#xff0c;需要周期性的刷新。②时钟上升沿和下降沿都 会传输数据。③突发传输&#xff0c;突发长度 Burst Length 一般为 8。 2、DDR3 的存储&#xff1a;bank、行地址和列地址 数据怎么…

C/C++数据结构之链表题目答案与解析

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂。 目录 1.前言 2.题目…

Redis(12)| 过期删除策略和内存淘汰策略

Redis 是可以对 key 设置过期时间的&#xff0c;因此需要有相应的机制将已过期的键值对删除&#xff0c;而做这个工作的就是过期键值删除策略。 如何设置过期时间 先说一下对 key 设置过期时间的命令。 设置 key 过期时间的命令一共有 4 个&#xff1a; expire key n&#x…

海康Visionmaster-Qt+VS 二次开发环境如何配置?

1 新建 Qt 工程&#xff0c;添加 Qt 模块 Core、GUI、Active Qt 和 Container Widgets 2 拷贝 DLL:VM\VisionMaster4.0.0\Development\V4.0.0\ComControl\bin\x64 下的所有拷贝到项目工程输出目录下&#xff0c;如下图所示&#xff0c;项目的输出路径是 Dll 文件夹。 3 第一…

exsi的安装和配置

直接虚拟真实机 vcent server 管理大量的exsi SXI原生架构模式的虚拟化技术&#xff0c;是不需要宿主操作系统的&#xff0c;它自己本身就是操作系统。因此&#xff0c;装ESXI的时候就等同于装操作系统&#xff0c;直接拿iso映像(光盘)装ESXI就可以了。 VMware vCente…

ChatGPT 宕机?OpenAI 将中断归咎于 DDoS 攻击

您的 ChatGPT 已关闭吗&#xff1f;您是否遇到 ChatGPT 问题&#xff0c;例如连接问题或遇到“长响应时出现网络错误”&#xff1f;– ChatGPT 遭受了一系列 DDoS 攻击&#xff0c;显然是由匿名苏丹组织策划的。 OpenAI 的 ChatGPT 是一款流行的人工智能聊天机器人&#xff0c;…

μC/OS-II---互斥信号量管理1(os_mutex.c)

目录 背景&#xff1a;优先级反转问题互斥信号量管理互斥信号量创建互斥信号量删除互斥信号量获取/等待 背景&#xff1a;优先级反转问题 在高优先级任务等待低优先级任务释放资源时&#xff0c;第三个中等优先级任务抢占了低优先级任务。阻塞时间是无法预测的&#xff0c;可能…