BOM 及窗口加载事件

简介: BOM 及窗口加载事件

BOM 是学习完 DOM 文档对象模型后的另一个对象模型 --------- 浏览器对象模型,它提供了一系列独立于内容而与浏览器窗口进行交互的对象,并且每个对象都有很多方法和属性,核心对象及顶级对象是 window 再来回顾一下 DOM 和 BOM 的区别:


DOM:

  • 文档对象模型
  • 顶级对象为 document
  • 主要学习内容为操作页面元素
  • 标准为 W3C 标准规范


BOM:

  • 浏览器对象模型
  • 顶级对象为 window
  • 主要学习的是浏览器窗口的交互
  • BOM 是浏览器厂商在各自浏览器设定的,兼容性很差


我们要清楚了解:BOM 比 DOM 要大,DOM 是包含在 BOM 里面的


window 对象是浏览器的顶级对象,它既是 JS 访问浏览器的一个接口,也是一个全局对象,定义在全局作用域中的变量和函数都会变成它的一个方法:但是在调用的时候我们通常会省 window,直接 console.log(a)即可,就比如我是河南人,我给别人说我的省份时不用再说我是中国河南人,一个道理

<script>vara=100;
console.log(window.a);
</script>

窗口加载事件

在之前没有学习 BOM 时,我们书写 HTML 和 Script 的顺序是先写完 HTML 再写 Script,目的是先让 HTML加载完,才能执行后面的交互效果,但是学习了 BOM 后,我们就可以实现 Script 标签随意放啦


window.addEventListener('load',function(}) :

这个方法可以使文档内容全部加载完后再执行 JS 的内容,包括了图片,flash,css,脚本文件等等,(如果使用的 window.οnlοad=function(){} 的话那么相同的元素只能被注册一次,并且以最后一次为准,使用该侦听函数注册事件则可以注册多次),Script 标签可以放在 HTML 的前面,也可以放在 head 里面,或者是放在外部,以下便是使用该方法后将 Script 标签放在了 HTML 标签的上部

<script>window.addEventListener('load',function(){
varele=document.querySelector('button');
ele.addEventListener('click',function(){
alert('我弹出啦');
          })
    })
</script><button>按钮</button>


document.addEventListener('DOMContentLoaded',function(}) :

该方法与上面的区别在于,这个事件仅当 DOM 加载完成就可以去执行 JS 的交互内容了,不包括图片,css,flash,脚本文件等等,如果一个页面图片很多,使用 onload 事件将会耗费大量时间,那么使用这个事件去注册将会大大减少用户等待页面的时间

<script>window.addEventListener('DOMContentLoaded',function(){
varele=document.querySelector('button');
ele.addEventListener('click',function(){
alert('我弹出啦');
          })
    })
</script><button>按钮</button>
相关文章
|
编译器 程序员 API
CMakeList.txt -- 编写保姆式教程
CMakeList.txt -- 编写保姆式教程
299 0
|
6月前
|
自动驾驶 安全 物联网
5G加持自动驾驶:从“聪明”到“智慧”的进化
5G加持自动驾驶:从“聪明”到“智慧”的进化
146 8
|
7月前
|
存储 缓存 算法
JVM简介—1.Java内存区域
本文详细介绍了Java虚拟机运行时数据区的各个方面,包括其定义、类型(如程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区和直接内存)及其作用。文中还探讨了各版本内存区域的变化、直接内存的使用、从线程角度分析Java内存区域、堆与栈的区别、对象创建步骤、对象内存布局及访问定位,并通过实例说明了常见内存溢出问题的原因和表现形式。这些内容帮助开发者深入理解Java内存管理机制,优化应用程序性能并解决潜在的内存问题。
330 29
JVM简介—1.Java内存区域
|
11月前
|
缓存 Java 网络安全
Solr7.4.0报错org.apache.solr.common.SolrException
在使用 Solr 7.4.0 时,`org.apache.solr.common.SolrException` 错误可能由多种原因引起,包括配置文件错误、核心未加载、权限问题、Java 环境问题、依赖库冲突和网络配置问题。通过检查配置文件、确保正确的权限、验证Java环境、解决依赖库冲突和检查网络配置,可以有效解决这些问题。结合日志文件、管理控制台和调试模式,可以快速定位和解决错误,确保 Solr 系统的稳定运行。
508 1
|
自然语言处理 安全 Shell
Linux 提权-SUID/SGID_1 本文通过 Google 翻译 SUID | SGID Part-1 – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。
接下来,让我们看看 SUID3NUM 在枚举 SUID 二进制文件方面的表现如何。 3.2、枚举 SUID 二进制文件 – SUID3NUM 我们将用来枚举 SUID 二进制文件的第二个工具是 SUID3NUM。这是一个很棒的工具,因为它是专门为枚举 SUID 二进制文件而创建的。但这还不是全部,它还提供了可用于提升权限的命令(命令从 GTFOBins 中提取)。 这还不是最好的部分,SUID3NUM 还具有内置的 autopwn 功能,可以通过 -e 开关激活! 在 OSCP 考试中也使用此工具,只要您不使用自动利用功能。 3.2.1、下载并执行 SUID3NUM 我们可以从 GitHubs
138 0
|
XML 移动开发 JavaScript
js中BOM和DOM总结(基础篇)
文章总结了JavaScript的BOM和DOM知识点,包括window、screen、location、history、navigator对象,以及消息框、计时器和cookie。同时,介绍了DOM的概念、节点获取和修改方法,以及事件处理。
js中BOM和DOM总结(基础篇)
|
人工智能 JSON 前端开发
ProChat 1.1 使用问题之用 chatRef 获取 ProChat 实例以实现程序化控制,如何操作
ProChat 1.1 使用问题之用 chatRef 获取 ProChat 实例以实现程序化控制,如何操作
186 1
|
弹性计算 并行计算 Shell
基于阿里云ECS服务器部署stable-diffusion-webui
基于阿里云ECS服务器部署stable-diffusion-webui
975 0
基于阿里云ECS服务器部署stable-diffusion-webui
|
监控 Ubuntu Shell
用shell脚本部署zabbix
用shell脚本部署zabbix
294 1
|
JavaScript 前端开发 安全
JavaScript实现跳转的方法
JavaScript实现跳转的方法

热门文章

最新文章