JavaScript:BOM编程

今天我要介绍的是JS中有关于BOM编程的知识点内容:BOM编程;

       介绍:BOM全名(Browser Object Model(浏览器对象模型))。 是浏览器提供的与浏览器窗口交互的接口,其核心对象是 window。与 DOM(文档对象模型)不同,BOM 关注浏览器窗口、导航、历史记录等浏览器层面的操作。

接下来我将逐一介绍BOM编程的相关内容;

以下图解为BOM树:

      window对象意解:document :文档(包含当前窗口所显示页面文档的所有内容);history:历史记录(访问历史纪录);location:地址栏(操作地址栏);sreen(查看屏幕信息)(剩下内容后续文章将会介绍)

      所有JS全局对象,函数以及变量均自动成为window对象的成员,实际使用上述对象时可以省略window,例如:window.locationlocation时一样的。

   注:document对象: HTML标签对象也是一个节点Node对象 它处于DOM树的上级。

var a = 10;console.log(a);console.log(window.a);//函数function add(a, b) {return a + b;}console.log(add(1, 2))console.log(window.add(1, 2));// //对象console.log(parseInt('123'))

 效果:

 注解:console.log(window.parseInt('123'))也属于window对象的成员==》console.log(parseInt('123')),可以通过window对象访问;

  window内容详细

close:关闭窗口;setInterval:循环定时器;setTimeout:定时器;clearInterval:清除循环定时器;clearTimeout:清除定时器;parseInt:转整数;parseFloat:转小数;innerHeight  /  innerWidth:网页显示区域高度  /  网页显示区域宽度;

注意:以上在前面的位置都可以加 window ;

innerHeight  /  innerWidth:网页显示区域高度  /  网页显示区域宽度:

<div id ='dd' style="background: red;width: 100px;"></div><button onclick="window.open('CSwj.html')">点击一下</button><button onclick="window.location='CSwj.html'">location跳转</button><!-- <button onclick="window.history.forward()">history前进</button> -->dd.style.width=window.innerWidth;console.log(window.innerHeight)dd.style.height=window.innerHeight+'px';

 效果:

 注解:以上内容效果的宽度不会随着其屏幕的放大缩小,但是它在会刷新的时候会根据你屏幕的大小取它的高度

location内容详细先知:

herf:跳转页面;reload:重载页面;

<button onclick=" window.open('CSwj.html')">点击一下</button><button onclick="window.location='CSwj.html'">location跳转</button>

 效果:

 跳转后:

 区别==》<button οnclick="window.open('CSwj.html')">点击一下</button> 

<button οnclick="window.location='CSwj.html'">location跳转</button>

​
<input type="text" /><button onclick="window.open('CSwj.html')">点击一下</button><button onclick="window.location.reload()">location重载</button>​

 效果:

 一个为新开窗口,一个在当前窗口打开;后者可以省略window,单加location的,但是一般是不省略,方便可以理解。

history内容详细先知:

back:返回;forword:前进;go:指定;

<input type="text" /><button onclick="window.open('CSwj.html')">点击一下</button><button onclick="window.location='CSwj.html'">location跳转</button><button onclick="window.history.forward()">history前进</button>   &&<button onclick="window.history.go(1)">go前进</button>      &&<button onclick="window.location.reload()">location重载</button>

效果:

跳转后:

注解:{  go(-1)  }  回退;

document内容详细先知:

ById:根据id属性获取指定的元素(单个获取);byTagName:根据标签获取指定的元素(多个获取);byClassName:根据类样式class获取指定的元素(多个获取);querySelector:根据class样式查找元素(单个);querySelectorAll:根据class样式查找所有满足的元素(多个)。

ById:根据id属性获取指定的元素(单个获取)

<ul><li id = "li1">Scratch</li><li id = "li2">Java</li><li>HTML</li><li>CSS</li><li>JavaScript</li></ul><div class="box"><p class="c1">苹果</p><p class="c1">香蕉</p><p class="c2">西瓜</p></div><div class="box"><p class="c1">苹果</p><p class="c1">香蕉</p><p class="c2">莲雾</p></div><p>茄子</p><script>// 根据id属性获取指定的元素(单个获取)let li = document.getElementById('li1');console.log(li)// let lk = li2;  //非常规写法,不推荐这个做法console.log(ll)

效果

 byTagName:根据标签获取指定的元素(多个获取)

 //byTagName:根据标签获取指定的元素(多个获取)let kk = document.getElementsByTagName('li')// let kk = document.getElementsByTagName('p')//for 循环  for of // 其中 kk属于被(遍历)循环集合,// s属于每次循环所得之变量for (let s of kk) {console.log(s)}

效果:

byClassName:根据类样式class获取指定的元素(多个获取)

 // byClassName:根据类样式class获取指定的元素(多个获取)let ss = document.getElementsByClassName('c1')for (let s of ss) {console.log(s)}

效果:

querySelector:根据class样式查找元素(单个)

//querySelector:根据class样式查找元素(单个)let ss =document.querySelector(".box.c2")console.log(ss);

效果:

querySelectorAll:根据class样式查找所有满足的元素(多个)

 //querySelectorAll:根据class样式查找所有满足的元素(多个)let ss = document.querySelectorAll('.box .c2')for (let s of ss) {console.log(s)}

效果:

注解:复制给定的  SS   在遍历再通过循环多个之后,所要得到的内容才可以一个一个打印出来,查找方式,只要是样式之类的,都可以用这个;

总结:希望本篇有关于JS BOM编程的知识点内容能对你带来一定的帮助,同时非常感谢各位大佬们的点赞与支持,咱们下一篇不见不散。

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

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

相关文章

Memcached缓存系统:从部署到实战应用指南

#作者&#xff1a;猎人 文章目录 一、安装libevent二、安装配置memcached三、安装Memcache的PHP扩展四、使用libmemcached的客户端工具五、Nginx整合memcached:六、php将会话保存至memcached Memcached是一款开源、高性能、分布式内存对象缓存系统&#xff0c;可应用各种需要缓…

解决前后端时区不一致问题

前后端时区不一致导致&#xff1a; 》数据不显示在前端 》页面显示时间有误 》一些对时间有要求的方法&#xff0c;无法正确执行&#xff0c;出现null值&#xff0c;加上我们对null值有判断/注解&#xff0c;程序就会报错中断&#xff0c;以为是业务逻辑问题&#xff0c;其实…

35.Java线程池(线程池概述、线程池的架构、线程池的种类与创建、线程池的底层原理、线程池的工作流程、线程池的拒绝策略、自定义线程池)

一、线程池概述 1、线程池的优势 线程池是一种线程使用模式&#xff0c;线程过多会带来调度开销&#xff0c;进而影响缓存局部性和整体性能&#xff0c;而线程池维护着多个线程&#xff0c;等待着监督管理者分配可并发执行的任务&#xff0c;这避免了在处理短时间任务时创建与…

驱动开发硬核特训 · Day 6 : 深入解析设备模型的数据流与匹配机制 —— 以 i.MX8M 与树莓派为例的实战对比

&#x1f50d; B站相应的视屏教程&#xff1a; &#x1f4cc; 内核&#xff1a;博文视频 - 从静态绑定驱动模型到现代设备模型 主题&#xff1a;深入解析设备模型的数据流与匹配机制 —— 以 i.MX8M 与树莓派为例的实战对比 在上一节中&#xff0c;我们从驱动框架的历史演进出…

Blender安装基础使用教程

本博客记录安装Blender和基础使用&#xff0c;可以按如下操作来绘制标靶场景、道路标识牌等。 目录 1.安装Blender 2.创建面板资源 步骤 1: 设置 Blender 场景 步骤 2: 创建一个平面 步骤 3: 将 PDF 转换为图像 步骤 4-方法1: 添加材质并贴图 步骤4-方法2&#xff1a;创…

智能手机功耗测试

随着智能手机发展,用户体验对手机的续航功耗要求越来越高。需要对手机进行功耗测试及分解优化,将手机的性能与功耗平衡。低功耗技术推动了手机的用户体验。手机功耗测试可以采用powermonitor或者NI仪表在功耗版上进行测试与优化。作为一个多功能的智能终端,手机的功耗组成极…

从代码学习深度学习 - 多头注意力 PyTorch 版

文章目录 前言一、多头注意力机制介绍1.1 工作原理1.2 优势1.3 代码实现概述二、代码解析2.1 导入依赖序列掩码函数2.2 掩码 Softmax 函数2.3 缩放点积注意力2.4 张量转换函数2.5 多头注意力模块2.6 测试代码总结前言 在深度学习领域,注意力机制(Attention Mechanism)是自然…

学术版 GPT 网页

学术版 GPT 网页 1. 学术版 GPT 网页非盈利版References https://academic.chatwithpaper.org/ 1. 学术版 GPT 网页非盈利版 arXiv 全文翻译&#xff0c;免费且无需登录。 更换模型 System prompt: Serve me as a writing and programming assistant. 界面外观 References …

MarkDown 输出表格的方法

MarkDown用来输出表格很简单&#xff0c;比Word手搓表格简单多了&#xff0c;而且方便修改。 MarkDown代码&#xff1a; |A|B|C|D| |:-|-:|:-:|-| |1|b|c|d| |2|b|c|d| |3|b|c|d| |4|b|c|d| |5|b|c|d|显示效果&#xff1a; ABCD1bcd2bcd3bcd4bcd5bcd A列强制左对齐&#xf…

MetaGPT深度解析:重塑AI协作开发的智能体框架实践指南

一、框架架构与技术突破 1.1 系统架构设计 graph TBA[自然语言需求] --> B(需求解析引擎)B --> C{角色路由系统}C --> D[产品经理Agent]C --> E[架构师Agent]C --> F[工程师Agent]D --> G[PRD文档]E --> H[架构图]F --> I[代码文件]G --> J[知识共…

自用:在使用SpringBoot做学生信息管理系统时遇到的问题

1、在做完查询测试时&#xff0c;一直报出404找不到错误&#xff0c;原因是没有为各个层的实现类添加注解 2、改完之后发现测试没有数据&#xff0c;是因为我写的返回值类型为空&#xff0c;应该返回一个List< Student > 3、我没有想到要写Result实体类&#xff0c;因为不…

SQLite + Redis = Redka

Redka 是一个基于 SQLite 实现的 Redis 替代产品&#xff0c;实现了 Redis 的核心功能&#xff0c;并且完全兼容 Redis API。它可以用于轻量级缓存、嵌入式系统、快速原型开发以及需要事务 ACID 特性的键值操作等场景。 功能特性 Redka 的主要特点包括&#xff1a; 使用 SQLi…

202529 | RocketMQ 简介 + 安装 + 集群搭建 + 消费模式 + 消费者组

RocketMQ简介 RocketMQ 简介 Apache RocketMQ 是一款开源的 分布式消息中间件&#xff08;Message Queue, MQ&#xff09;&#xff0c;由阿里巴巴团队研发并捐赠给 Apache 基金会&#xff0c;现已成为顶级项目。它专为 高吞吐、低延迟、高可靠 的分布式场景设计&#xff0c;广…

Go语言--语法基础4--基本数据类型--整数类型

整型是所有编程语言里最基础的数据类型。 Go 语言支持如下所示的这些整型类型。 需要注意的是&#xff0c; int 和 int32 在 Go 语言里被认为是两种不同的类型&#xff0c;编译器也不会帮你自动做类型转换&#xff0c; 比如以下的例子会有编译错误&#xff1a; var value2 in…

竞拍商城:电商创新的博弈场与未来趋势

竞拍商城&#xff1a;电商创新的博弈场与未来趋势 在传统电商趋于同质化的今天&#xff0c;竞拍商城凭借其独特的交易机制和用户激励模式&#xff0c;成为电商领域的新宠。通过结合拍卖的博弈属性与电商的便捷性&#xff0c;竞拍商城不仅重塑了消费体验&#xff0c;更催生了全…

Linux : 多线程互斥

目录 一 前言 二 线程互斥 三 Mutex互斥量 1. 定义一个锁&#xff08;造锁&#xff09; 2. 初始化锁 3. 上锁 4. 解锁 5. 摧毁锁 四 锁的使用 五 锁的宏初始化 六 锁的原理 1.如何看待锁&#xff1f; 2. 如何理解加锁和解锁的本质 七 c封装互斥锁 八 可重入…

论文阅读笔记——Reactive Diffusion Policy

RDP 论文 通过 AR 提供实时触觉/力反馈&#xff1b;慢速扩散策略&#xff0c;用于预测低频潜在空间中的高层动作分块&#xff1b;快速非对称分词器实现闭环反馈控制。 ACT、 π 0 \pi_0 π0​ 采取了动作分块&#xff0c;在动作分块执行期间处于开环状态&#xff0c;无法及时响…

swagger 注释说明

一、接口注释核心字段 在 Go 的路由处理函数&#xff08;Handler&#xff09;上方添加注释&#xff0c;支持以下常用注解&#xff1a; 注解名称用途说明示例格式Summary接口简要描述Summary 创建用户Description接口详细说明Description 通过用户名和邮箱创建新用户Tags接口分…

STM32 HAL库 OLED驱动实现

一、概述 1.1 OLED 显示屏简介 OLED&#xff08;Organic Light - Emitting Diode&#xff09;即有机发光二极管&#xff0c;与传统的 LCD 显示屏相比&#xff0c;OLED 具有自发光、视角广、响应速度快、对比度高、功耗低等优点。在嵌入式系统中&#xff0c;OLED 显示屏常被用…

Web开发-JavaEE应用动态接口代理原生反序列化危险Invoke重写方法利用链

知识点&#xff1a; 1、安全开发-JavaEE-动态代理&序列化&反序列化 2、安全开发-JavaEE-readObject&toString方法 一、演示案例-WEB开发-JavaEE-动态代理 动态代理 代理模式Java当中最常用的设计模式之一。其特征是代理类与委托类有同样的接口&#xff0c;代理类…