JavaScript的BOM编程

news/2025/2/26 6:00:45

BOM编程

what

通过JS代码操作浏览器,js的编程就是面向对象编程,最多的就是面向标签对象编程

BOM:Browser Object Model 浏览器对象模型,以window对象为依托,表示浏览器窗口以及页面可见区域

学习BOM操作,就是学习对浏览器窗口的操作

  • History:历史管理对象
  • Location:地址对象
  • DOM:文档对象——document
  • window:整个html页面的顶层对象,所有的内容都是window的成员,window可以省略,表示整个浏览器窗口,所有的全局变量和函数都是它的属性,且所有原生的构造函数及其他函数也都存在于它的命名空间下

Browser对象

名称描述
window浏览器窗口
location包含关于当前 URL 的信息
history包含了用户已浏览的 URL 的信息
event代表事件状态,如事件发生的元素,键盘状态,鼠标位置和鼠标按钮状态(周围的整体的环境信息!)
document代表给定浏览器窗口中的 HTML 文档
统一资源占位符/定位符

网址:https://www.runoob.com/jsref/obj-location.html#aaa

​ http://127.0.0.1:8848/project/02-javascript/js-07/bom.html?name=zhangsan&age=18&address=郑州#aaa

  1. 网络传输协议:http:// (不加密) https://(加密)

  2. 域名=IP地址+端口号:www.runboob.com 80端口为默认端口,可省略

    IP地址:定位主机 127.0.0.1

    端口号:相当于系统中每个软件的IP 8848

  3. 资源路径:/project/02-javascript/js-07/

  4. 分隔符:? 分隔路径与表单数据

  5. 表单数据:使用&连接 name=zhangsan&age=18&address=郑州

  6. 锚点:#aaa

1. Location对象

Location对象包含有关当前URL的信息

  • 属性
  1. hash:返回一个url的锚部分(从#开始)
  2. host:返回一个URL的主机名和端口号
  3. hostname:返回URL主机名
  4. href:返回一个完整的URL,改变当前页面的地址(有历史)
  5. pathname:返回URL路径名
  6. port:返回一个URL服务器使用的端口号
  7. protocol:返回一个URL协议
  8. search:返回一个URL的查询部分
<script>javascript">
    // 创建 a 标签并设置 href 属性
    var url = document.createElement('a');
    url.href = 'https://www.runoob.com/?s=python#test';
    console.log(url.href);      // https://www.runoob.com/?s=python
    console.log(url.protocol);  // https:
    console.log(url.host);      // www.runoob.com
    console.log(url.hostname);  // www.runoob.com
    console.log(url.port);      // (输出为空 - https 默认端口为 443)
    console.log(url.pathname);  // /
    console.log(url.search);    // en-US/search
    console.log(url.hash);      // #test
console.log(url.origin);    // https://www.runoob.com
</script>
  • 方法
    1. assign():载入一个新的文档,改变当前页面的地址(有历史)
    2. reload():重新加载当前页面
    3. replace():替换当前页面的地址(无历史)
2. History对象

History对象包含用户(在浏览器窗口中)访问过的URL。是window对象的一部分,可通过window.history属性对其进行访问

属性不带(),带()的都是方法

  • 属性

    • length:返回历史列表中的网址数
  • 方法

  • forward():前进

  • back():后退

  • go(): 1. go(value) 前进

​ 2. go(-value) 后退

​ 3. go(0) 刷新,等同于location里面的reload()方法——重新加载当前页面

<a href="http://www.baidu.com">百度</a>
		<button onclick="javascript language-javascript">aaa()">前进</button>
		<button onclick="javascript language-javascript">bbb()">后退</button>
		<script type="text/javascript">javascript">
			function aaa(){
				//前进
				//window.history.forward();
				//go(1) <==> forward();
				window.history.go(1);
			}
			function bbb(){
				//后退
				//window.history.back();
				//go(-1) <==> back();
				window.history.go(-1);
			}
			function ff(){
				//前进
				//window.history.forward();
				//写几代表前进几个页面
				window.history.go(2);
			}
			function bb(){
				//后退
				//window.history.back();
				window.history.go(-1);
				//写几代表后退几个页面
			}
		</script>
event事件对象

代表事件发生时周围的环境信息,如事件发生的元素,键盘状态,鼠标位置和鼠标按钮的状态。

window对象常用方法

名称描述
alert显示自定义消息的对话框
confirm显示确认对话框
prompt显示输入对话框
setTimeout 重点经过指定毫秒值后计算表达式,并返回该事件对象
setInterval 重点每过一定时间间隔调用一次指定函数
close关闭当前浏览器窗口
1.confirm方法

一般用于判断,是否进行下一步的操作

<script>javascript">
        var aa=confirm("你确定要删除吗?");
        alert(aa);
</script>
2.setTimeout方法-延时器

指定毫秒数后调用函数或计算表达式

1秒=1000毫秒

基本格式(两种):

setTimeout(要调用的函数名称,延迟时间,参数);//该格式可以实现递归,自己调自己

setTimeout(function(){},5000)//在setTimeout中直接定义函数
  • 若要实现动态显示,即每个一秒页面出现一次变化,需要递归,自己调自己
3.clearTimeout方法

取消由setTimeout()方法设置的timeout

使用该方法时,需要先将setTimeout(要调用的函数名称,延迟时间,参数)用一个变量接收,后续才能用clearTimeout(变量名)接收。

4.setInterval方法 clearInterval()-定时器

按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval 每隔一定的时间执行方法。

clearInterval 关闭定时器


http://www.niftyadmin.cn/n/5868131.html

相关文章

【DeepSeek系列】05 DeepSeek核心算法改进点总结

文章目录 一、DeepSeek概要二、4个重要改进点2.1 多头潜在注意力2.2 混合专家模型MoE2.3 多Token预测3.4 GRPO强化学习策略 三、2个重要思考3.1 大规模强化学习3.2 蒸馏方法&#xff1a;小模型也可以很强大 一、DeepSeek概要 2024年&#xff5e;2025年初&#xff0c;DeepSeek …

ROS 2机器人开发--话题通信实战--制作一个可视化系统状态监听工具

1 准备工作 2 自定义通信接口 3 系统信息获取与发布 4 测试QT 5 数据可视化显示 1 准备工作 需求分析&#xff1a;开发一个基于ROS 2话题通信的系统状态监听工具&#xff0c;能够实时获取系统&#xff08;如CPU、内存、网络等&#xff09;的运行状态&#xff0c;并通过可视…

powershell:报错npm : 无法加载文件 D:\develop\nodejs\npm.ps1,因为在此系统上禁止运行脚本

问题 原因分析 由于 ​PowerShell 的执行策略&#xff08;Execution Policy&#xff09;​​ 限制导致的。Windows 系统默认禁止运行未签名的脚本&#xff08;包括 npm 脚本&#xff09;&#xff0c;因此运行 npm run dev 时&#xff0c;PowerShell 阻止了脚本的执行。 解决…

玩转Docker | 使用Docker部署IT-tools工具箱

玩转Docker | 使用Docker部署IT-tools工具箱 前言一、 IT-tools介绍简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署IT-tools服务下载镜像创建容器检查容器状态检查服务端口安全设置四、访问IT-tools应用五、测试与使用六、总结前言 在信息技…

Maven 依赖的深入理解(二)

四、Maven 依赖传递原理 &#xff08;一&#xff09;传递依赖的概念 在 Maven 项目中&#xff0c;传递依赖是一个非常重要的特性。它指的是当项目引入一个依赖时&#xff0c;这个依赖所依赖的其他组件库也会被 Maven 自动引入到项目中&#xff0c;而无需我们在项目的pom.xml文…

​Linux 服务器上部署搭建 Jupyter notebook【详细教程】​

安装anaconda3 一、linux服务器手动安装Anaconda3教程 1.首先清华镜像站 下载anaconda3。 此次下载的版本如下&#xff1a; 2.下载好后&#xff0c;使用WinSCP将下载好的文件上传到服务器。 3.切换到anaconda3所在文件位置 在文件目录下执行 bash Anaconda3-5.2.0-Linux-x8…

AI领域风云变幻:Deepseek爆火现象深度解析

摘要 神州数码集团首席AI专家谢国斌深入分析了Deepseek爆火背后的现象&#xff0c;揭示了AI领域竞争格局的深刻变革。随着算力内卷加剧&#xff0c;AI企业正面临前所未有的挑战与机遇。谢国斌指出&#xff0c;Deepseek的成功不仅在于其强大的算法和数据处理能力&#xff0c;更在…

猿大师播放器:网页内嵌VLC/FFPlayer在Web端直接播放RTSP/RTMP/H.265视频流

据统计&#xff0c;2024年中国视频转码服务器市场规模已突破百亿&#xff0c;但企业IT投入中约40%用于转码服务器的采购与维护&#xff0c;消防、安防等场景对实时性的严苛要求&#xff08;如火灾预警需秒级响应&#xff09;&#xff0c;使得传统转码方案因延迟过高而屡屡失效&…