BOM【JavaScript】

BOM(Browser Object Model)是浏览器对象模型的缩写,它允许JavaScript与浏览器进行交互。BOM 提供了与浏览器窗口和框架相关的对象,使得开发者可以操作浏览器的各种功能。

BOM 的一些关键组成部分包括:
window 对象表示浏览器窗口,是所有 BOM 对象的根对象。
location 对象用于获取和设置当前文档的 URL,包含地址栏上的信息。
navigator 对象包含关于浏览器的信息,例如浏览器名称和版本。
history 对象用于管理浏览器的历史记录,可以实现前进和后退功能。
document 对象虽然更常与 DOM 关联,但它也是 BOM 的一部分,代表当前加载的网页。

1. window对象

 1.1 alert

  • 功能:显示简单的信息,提示用户。
  • 使用方式alert('消息内容');
  • 返回值:无,用户只能点击“确定”关闭对话框。
  • 示例alert('欢迎使用本系统!');

1.2 confirm

  • 功能:询问用户是否确认某个操作。
  • 使用方式confirm('确认操作吗?');
  • 返回值:返回 true 或 false,表示用户的选择。
  • 示例const isConfirmed = confirm('您确定要删除吗?');

1.3 prompt

  • 功能:要求用户输入信息。
  • 使用方式prompt('请输入信息:');
  • 返回值:返回用户输入的字符串,或 null(如果用户点击“取消”)。
  • 示例const userName = prompt('请输入您的名字:');

 

1.4 setTimeout()

setTimeout() 函数允许您在指定的毫秒数后执行一个函数或语句。它是非阻塞的,执行完成后不会继续阻塞代码的执行。 

  • 功能:在指定的延迟时间(以毫秒为单位)后执行一次特定的代码或函数。
  • 例子:

1.5 setInterval() 

setInterval() 函数以指定的毫秒数间隔来定期执行一个函数或语句。它是阻塞的,可以用来创建循环定时器。 

  • 功能:每隔指定的时间(以毫秒为单位)重复执行特定的代码或函数,直到调用 clearInterval() 终止它。
  • 例子:

2.  location 对象

在 JavaScript 中,location 对象用于表示当前文档的 URL,并提供了一些常用的方法和属性。以下是一些常用的方法和属性:

2.1 常用属性

  1. href:获取或设置当前文档的完整 URL。

    console.log(location.href);
    
  2. protocol:获取当前 URL 的协议(如 http: 或 https:)。

    console.log(location.protocol);
    
  3. host:获取当前 URL 的主机名和端口号。

    console.log(location.host);
    
  4. hostname:获取当前 URL 的主机名。

    console.log(location.hostname);
    
  5. port:获取当前 URL 的端口号。

    console.log(location.port);
    
  6. pathname:获取当前 URL 的路径部分。

    console.log(location.pathname);
    
  7. search:获取当前 URL 的查询字符串(包括问号)。

    console.log(location.search);
    
  8. hash:获取当前 URL 的锚点(包括井号)。

    console.log(location.hash);
    

2.2 常用方法

  1. assign(url):加载新的文档。

    location.assign('https://example.com');
    
  2. replace(url):用新的文档替换当前文档,不会在历史记录中留下记录。

    location.replace('https://example.com');
    
  3. reload(force):重新加载当前文档。如果 force 为 true,则强制从服务器加载。

    location.reload();
    

2.3 使用示例

// 输出当前页面的 URL
console.log(location.href);// 跳转到新的 URL
location.assign('https://example.com');// 刷新当前页面
location.reload();

location对象的这些方法和属性可以帮助你在网页中处理 URL 和导航。

3. navigator 对象

navigator 对象是 JavaScript 中的一个重要组成部分,它提供了关于浏览器和用户环境的信息。以下是一些 navigator 对象的常用属性和方法:

3.1 主要属性

  1. navigator.userAgent:返回一个字符串,包含浏览器的用户代理信息。通过这个字符串,你可以获取到浏览器的名称、版本及操作系统的信息。

  2. navigator.language:返回用户首选的语言设置(例如 "en-US")。这可以用于国际化应用程序。

  3. navigator.onLine:返回一个布尔值,表示用户是否在线。

  4. navigator.platform:返回操作系统平台的字符串(例如 "Win32""Linux x86_64")。

  5. navigator.geolocation:提供了获取用户地理位置信息的接口,但需要用户授权。

3.2 主要方法

  • navigator.sendBeacon(url, data):用于异步发送小量数据到服务器,通常用于分析或监控。

3.3 示例

下面是一个简单的使用 navigator 对象的示例:

console.log("User Agent: " + navigator.userAgent);
console.log("Language: " + navigator.language);
console.log("Online Status: " + navigator.onLine);

3.4 注意事项

  • 使用 navigator 对象获取的某些信息(如位置)可能需要用户的权限才能访问。
  • 不同浏览器对 navigator 属性和方法的支持程度可能有所不同,因此在使用时应考虑兼容性。

 4. history对象

history 对象是 JavaScript 中的一个重要部分,属于浏览器对象模型(BOM)。它用于操作浏览器的会话历史记录,让你能够在用户的历史记录中进行前进、后退和其他导航操作。以下是 history 对象的一些主要属性和方法:

4.1 主要属性

  • history.length:返回当前会话历史记录的条目数。

4.2 主要方法

  1. history.back():使浏览器返回到历史记录中的上一页,等同于点击浏览器的后退按钮。

  2. history.forward():使浏览器前进到历史记录中的下一页,等同于点击浏览器的前进按钮。

  3. history.go(n):根据传入的参数 n 导航到历史记录中的某个位置。例如,history.go(-1) 相当于 history.back()history.go(1) 相当于 history.forward()

  4. history.pushState(state, title, url):在历史记录中添加一个新的状态。可以用于单页应用(SPA)中进行 URL 的管理,而不重新加载页面。

  5. history.replaceState(state, title, url):修改当前的历史记录条目,而不添加新的条目。

4.3 示例

下面是一个简单的示例,演示如何使用 history 对象:

// 返回上一页
function goBack() {history.back();
}// 前往下一页
function goForward() {history.forward();
}// 跳转到历史记录中的某个条目
function goToPage(n) {history.go(n);
}

4.4 注意事项

  • 使用 history 对象的方法只影响浏览器的历史记录,不会与服务器进行交互。
  • 在某些情况下,使用 pushState 和 replaceState 时需要确保相应的 URL 是有效的,否则可能会导致导航问题。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

文章结构元素分析系统源码分享

文章结构元素分析检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

【Joint Receiver Design for ISAC】Neyman person | Gaussian | MMSE estimator |

【1】统计信号处理 Neyman-Pearson criterion pp 425 【1】 R c E { g x ( n ) x ( n ) H g H } σ 2 I g g H σ 2 I , \mathbf{R}_c\mathbf{E}\{\mathbf{g}x(n)x(n)^H\mathbf{g}^H\}\sigma^2\mathbf{I}\mathbf{g}\mathbf{g}^H\sigma^2\mathbf{I}, Rc​E{gx(n)x(n)HgH}σ2…

Linux C# Day4

作业: 1.统计家目录下.c文件的个数 #!/bin/bash num0 for filename in ls ~/*.c do((num)) done echo $num2.定义一个稀疏数组(下标不连续),写一个函数,求该稀疏数组的和,要求稀疏数组中的数值通过参数传递到函数中arr([2]9 [4…

【高中生讲机器学习】19. 各种经典聚类算法,一篇带你过完!(上)

创建时间:2024-09-11 首发时间:2024-09-23 最后编辑时间:2024-09-23 作者:Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏,很高兴遇见你~ 我是 Geeker_LStar,一名高一学生,热爱计…

Vue3(二)计算属性Computed,监视属性watch,watchEffect,标签的ref属性,propos属性,生命周期,自定义hook

文章目录 一 、计算属性1. 简写2. 完整写法 二、监视watch1. 监视【ref】定义的【基本类型】数据2. 监视【ref】定义的【对象类型】数据3. 监视【reactive】定义的【对象类型】数据4. 监视【ref】或【reactive】定义的【对象类型】数据中的某个属性5. 监视多个数据总结 三、wat…

Android下MVP和MVVM模式的实践

转载注明出处:https://blog.csdn.net/skysukai 1、前言 MVP和MVVM诞生已经好些年头了,记得刚毕业才参加工作的时候,第一次见到了有上万行的Activity,这种巨无霸的Activity维护起来简直就是噩梦。这时候,就需要进行代…

2024最新windows 11系统 PHP或者idea编译器-配置Git环境和使用教程

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 确保电脑上已安装到git,如下图所示:-是已安装好: 安装git教程: Git安装使用教程_git安装教程-CSDN博客 安装流程 点击左上角如图所示: 需要验证git本地 …

matlab恢复默认窗口布局

1.点击主页,选择布局 2.选择默认,即可恢复到默认的窗口布局

ollama 部署教程(window、linux)

目录 一、官网 二、安装方式一:window10版本下载 三、安装方式二:linux版本docker 四、 模型库 五、运行模型 六、API服务 七、python调用 ollama库调用 langchain调用 requests调用 aiohttp调用 八、模型添加方式 1.线上pull 2.导入 GGU…

类中的特殊内容

仿照string类&#xff0c;自己手动实现 My_string #include <iostream> #include <string.h> using namespace std;class My_string { private:int len;int size;char *ptr; public:My_string():size(15),len(0){ptrnew char[size];ptr[0]\0;}My_string(const char…

拓维思注册机Tovos PowerLine4.0.19树障分析 Tovos SmartPlan2.0.0航线规划软件

Tovos PowerLine是功能强大的输电线路智能巡检系统&#xff01;这是一个专业且智能的软件&#xff0c;能够更准确的进行巡检和对线路设备进行精确的测量&#xff0c;通过获取高精度的点云来获取精准的三维路线的地形地貌、设备设施、途径的各种物体等来精确您的三维空间信息和三…

【初阶数据结构】详解二叉树 - 树和二叉树(三)(递归的魅力时刻)

文章目录 前言1. 二叉树链式结构的意义2. 手搓一棵二叉树3. 二叉树的遍历&#xff08;重要&#xff09;3.1 遍历的规则3.2 先序遍历3.3 中序遍历3.4 后序遍历3.5 遍历的代码实现3.5.1 先序遍历代码实现3.5.2 中序遍历代码实现3.5.3 后序遍历代码实现 4. 统计二叉树结点的个数5.…

基于Vision-Board的智能应急环境监测控制小车

目录 1 项目概述 1.1 项目背景 1.2 系统功能介绍 1.2.1 下位机智能小车控制系统 1.2.2 微信小程序App 1.2.3 PC上位机App 1.3 框图介绍 1.3.1 主控板卡 1.3.2 小车控制模块 1.3.3 通信模块 1.4 系统使用的技术要点 2 系统硬件设计 2.1 Version board主控板块系统结…

《深度学习》卷积神经网络CNN 实现手写数字识别

目录 一、卷积神经网络CNN 1、什么是CNN 2、核心 3、构造 二、案例实现 1、下载训练集、测试集 代码实现如下&#xff1a; 2、展示部分图片 运行结果&#xff1a; 3、图片打包 运行结果&#xff1a; 4、判断当前使用的CPU还是GPU 5、定义卷积神经网络 运行结果&a…

通信工程学习:什么是NFVO网络功能虚拟化编排器

NFVO&#xff1a;网络功能虚拟化编排器 NFVO&#xff08;Network Functions Virtualization Orchestrator&#xff09;&#xff0c;即网络功能虚拟化编排器&#xff0c;是网络功能虚拟化&#xff08;NFV&#xff09;架构中的核心组件之一。NFV是一种将传统电信网络中的网络节点…

Linux学习笔记13---GPIO 中断实验

中断系统是一个处理器重要的组成部分&#xff0c;中断系统极大的提高了 CPU 的执行效率&#xff0c;本章会将 I.MX6U 的一个 IO 作为输入中断&#xff0c;借此来讲解如何对 I.MX6U 的中断系统进行编程。 GIC 控制器简介 1、GIC 控制器总览 I.MX6U(Cortex-A)的中断控制器…

全栈开发(三):springBoot3中使用mybatis-plus

MyBatis-Plus &#x1f680; 为简化开发而生 (baomidou.com) 1.配置pom.xml <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version></dependency&g…

90%的爆文作者都在用的AI标题公式 超实用7个迭代技巧

本文背景 我的上篇文章&#xff0c;关于我是如何在5分钟之内写出AI爆文结构化提示词的&#xff08;附50条优化指令词&#xff09;&#xff0c;已经详细的讲解了如何快速生成提示词&#xff0c;以及一些常用的优化提示词的指令&#xff0c;今天大象再来详细掰头掰头如何迭代提示…

虚拟摄像头抓屏

目录 一、下载: 二、安装 三、使用 前两天跟客户闲聊,说的了一个应用需求。他想实现将服务器操作过程实时记录下来,好比现在很多博主拍摄Vlog,再具体一点儿就是维修类短视频,可以记录维修过程,发现错误可以参照视频恢复,成功了也可以作为日后培训的教程。 实现的方法…

第一个Web项目(java+servlet+jsp)

通过百度网盘分享的文件&#xff1a;第一个Web项目 链接&#xff1a;https://pan.baidu.com/s/11vnAPeAf6Dtax7H6aYKZgA 提取码&#xff1a;1234 目录 声明&#xff1a; 简介&#xff1a; 注意&#xff1a; 操作步骤&#xff1a; 1.在idea中新建java项目&#xff0c;项目…