BOM编程
什么是 BOM?
BOM(Browser Object Model)是浏览器提供的对象和方法的集合,允许开发者操作浏览器窗口、页面跳转、URL、浏览器历史记录、用户设备信息等。window
对象是 BOM 的顶层对象,所有 BOM API 都直接或间接作为 window
对象的属性和方法来使用。
Window:
window
是 BOM 编程中的核心对象,也是与浏览器和网页进行交互的基础
三中弹窗方式:
1. window.alert()信息提示框
- 功能: 显示一个带有消息的警告框,只有“确定”按钮,用户点击后才能继续操作。
- 用法:
alert("This is an alert box!");
- 特性:
- 仅显示消息和一个“确定”按钮。
- 用于提示用户某个信息或警告。
2. window.confirm()信息确认框
- 功能: 显示一个带有消息的确认框,包含“确定”和“取消”按钮。返回一个布尔值,用户点击“确定”返回
true
,点击“取消”返回false
。 - 用法:
var result = confirm("Are you sure you want to delete this?"); if (result) {// 用户点击了“确定”console.log("User confirmed"); } else {// 用户点击了“取消”console.log("User canceled"); }
- 特性:
- 提供给用户确认或取消的选择。
- 常用于需要用户确认某个操作(如删除、提交等)的场景。
3. window.prompt()信息输入框
- 功能: 显示一个带有文本输入框的提示框,允许用户输入信息,并返回用户输入的字符串。如果用户点击“确定”,则返回输入的内容;如果点击“取消”或不输入内容,返回
null
。 - 用法:
var userInput = prompt("Please enter your name:", "default name"); if (userInput !== null) {console.log("User input:", userInput); } else {console.log("User canceled the prompt"); }
- 特性:
- 允许用户输入内容。
- 可以提供一个默认值(可选)。
- 常用于需要获取用户输入的简单交互场景。
Window对象常见属性:
window.history
:
用于访问浏览器的历史记录,可以用来前进或后退。
window.history.back(); // 后退
window.history.forward(); // 前进
window.setTimeout(function, milliseconds)
- 功能: 在指定的毫秒后执行某个函数。
- 用法:
setTimeout(function() {alert("Executed after 2 seconds"); }, 2000);
window.setInterval(function, milliseconds)
- 功能: 每隔指定的毫秒重复执行某个函数。
- 用法:
setInterval(function() {console.log("This runs every 2 seconds");
}, 2000);
window.location
:
用于获取和设置当前页面的 URL 信息。
console.log(window.location.href); // 获取当前 URL
window.location.href = "https://www.example.com"; // 跳转到新的 URL
sessionStorage
- 存储生命周期: 数据在页面会话期间可用。一旦页面或浏览器窗口被关闭,存储的数据就会被清除。
- 作用范围: 仅在当前标签页或窗口中有效。即便是同一页面在不同标签页或窗口中打开,它们的
sessionStorage
也互相独立。 - 用途: 适用于临时数据存储,例如页面会话中的用户信息或临时表单数据。
- 存储大小: 约 5-10 MB(具体取决于浏览器)。
- 用法示例:
// 存储数据 sessionStorage.setItem('username', 'JohnDoe');// 获取数据 var username = sessionStorage.getItem('username'); console.log(username); // 输出 'JohnDoe'// 删除数据 sessionStorage.removeItem('username');// 清空所有数据 sessionStorage.clear();
localStorage
- 存储生命周期: 数据存储是持久的,即使浏览器关闭或设备重启,数据依然存在,直到被显式删除。
- 作用范围: 在所有同源窗口和标签页中共享,即同一网站的不同标签页或窗口都可以访问相同的
localStorage
数据。 - 用途: 适用于需要长期保存的数据,例如用户偏好设置、浏览历史等。
- 存储大小: 约 5-10 MB(具体取决于浏览器)。
- 用法示例:
// 存储数据 localStorage.setItem('theme', 'dark');// 获取数据 var theme = localStorage.getItem('theme'); console.log(theme); // 输出 'dark'// 删除数据 localStorage.removeItem('theme');// 清空所有数据 localStorage.clear();
3. 两者的主要区别
特性 | sessionStorage | localStorage |
---|---|---|
生命周期 | 当前会话,关闭页面或窗口后数据清除 | 永久存储,直到显式删除 |
作用范围 | 当前标签页或窗口 | 同源的所有标签页和窗口共享 |
典型用途 | 临时数据存储(如表单输入) | 长期存储(如用户偏好设置、持久化数据) |
存储容量 | 约 5-10 MB(浏览器依赖) | 约 5-10 MB(浏览器依赖) |
document:
1. document.getElementById(id)
- 功能: 返回文档中具有指定
id
的元素。 - 用法:
var element = document.getElementById("myElement");
2. document.getElementsByClassName(className)
- 功能: 返回文档中具有指定类名的所有元素的集合。
- 用法:
var elements = document.getElementsByClassName("myClass");
3. document.getElementsByTagName(tagName)
- 功能: 返回文档中具有指定标签名的所有元素的集合。
- 用法:
var elements = document.getElementsByTagName("div");
4. element.innerHTML
- 功能: 获取或设置元素的 HTML 内容(包括 HTML 标签)。
- 用法:
element.innerHTML = "<p>New HTML content</p>";
5. element.addEventListener(event, function)
- 功能: 为指定元素添加事件监听器,当事件触发时执行相应的函数。
- 用法:
element.addEventListener("click", function() {alert("Element clicked!"); });
6. element.removeEventListener(event, function)
- 功能: 移除指定元素的事件监听器。
- 用法:
element.removeEventListener("click", handleClickFunction);
7. element.appendChild(newChild)
- 功能: 将新的子元素追加到指定元素的末尾。
- 用法:
var newElement = document.createElement("div"); element.appendChild(newElement);
8. element.removeChild(child)
- 功能: 移除指定元素的子元素。
- 用法:
element.removeChild(childElement);
相关文章:
BOM编程
什么是 BOM? BOM(Browser Object Model)是浏览器提供的对象和方法的集合,允许开发者操作浏览器窗口、页面跳转、URL、浏览器历史记录、用户设备信息等。window 对象是 BOM 的顶层对象,所有 BOM API 都直接或间接作为 …...

【C++ Primer Plus习题】16.1
大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include <string> usin…...

音视频入门基础:AAC专题(1)——AAC官方文档下载
一、AAC简介 高级音频编码(英语:Advanced Audio Coding,AAC)是有损音频压缩的专利数字音频编码标准,由Fraunhofer IIS、杜比实验室、贝尔实验室、Sony、Nokia等公司共同开发。出现于1997年,为一种基于MPEG…...
RAG与LLM原理及实践(17)---Docker Redis Python Usage
目录 背景 Redis 环境 download 修改镜像 Run Redis Coding python redis download 基本使用 描述 完整代码 运行结果 高阶用法 序列化的方式 Snapshot 与 AOF 快照(RDB) AOF(Append-Only File) 代码 总结 发布与订阅 描述 代码 运行结果 注…...

技术分享-商城篇-营销模块-优惠券种类(二十六)
前言 在之前的文章技术分享-商城篇-优惠券管理-功能介绍及种类(二十四) ,有对优惠券设计做了阐述,优惠券作为一种强大的促销工具,不仅能够吸引新客户,还能促进现有客户的复购与订单金额的提升。但是优惠券…...

Apache-wed服务器环境的安装
一。安装httpd并且开启httpd yum install httpd systemctl start httpd 二。关闭防火墙 systemctl stop firewall 三。常规配置wed服务 mkdir /www vim index.html(里面写入自己的内容) chmod 755 index.htm chmod 755 /www vim /etc/httpd/co…...

HR8870:可PWM控制,4.5A直流有刷电机驱动数据手册
HR8870芯片描述 HR8870是一款直流有刷电机驱动器,适用于打印机、电器、工业设备以及其他小型机器。两个逻辑输入控制H桥驱动器,该驱动器由四个N-MOS组成,能够以高达4.5A的峰值电流双向控制电机。利用电流衰减模式,可通过对输入进行…...

3D点云目标检测数据集标注工具 保姆级教程——CVAT (附json转kitti代码)
前言: 笔者尝试过很多3D标注软件都遇到很多问题,例如CloudCompare不适合做3D目标检测的数据集而且分割地面的时很繁琐;labelCloud没有三视图,视角难以调整标得不够精确;SUSTechPOINTS换帧麻烦、输出时存储在docker里面…...

获取zabbix API 监控数据shell脚本,自动日常巡检服务器信息、并发送指定群组
一,前言 有zabbix监控,也并不是时刻盯着数据,所以想着,每天固定某个时刻,自动发送服务器数据到指定群组,给其他人更直观的数据。 数据就可以从zabbix API获取。参考官方API文档:https://www.z…...

【spring】maven引入okhttp的日志拦截器打开增量注解进程
HttpLoggingInterceptor 是在logging-interceptor库中的:这个logging库老找不到 import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor;发现这仨是独立的库 pom中三个依赖 <!-- OKHTTP3 --><...

产品探秘|开物——面向AI原生和云原生网络研究的首选科研平台
在当今高速发展的信息技术领域,特别是对于那些致力于前沿科技探索与实践的高校而言,拥有一款能够支持复杂网络业务研究与开发的平台至关重要。开物™数据网络开发平台(Data Network Development Platform,简称DNDP)&am…...
Jenkins Docker Pipeline Clone Build Deploy mysqldump
本文首发在这里 先决条件 装好 Docker 的 Ubuntu钉钉机器人 Webhook curl -H Content-Type:application/json -d {"msgtype":"text","text":{"content":"hello world"}} https://oapi.dingtalk.com/robot/send?access_t…...

【干货分享】Ftrans安全数据交换系统 搭建跨网数据传输通道
安全数据交换系统是一种专门设计用于在不同的网络、系统或组织之间安全地传输数据的软件或硬件解决方案。这种系统通常包含多种安全特性,以确保数据在传输过程中的保密性、完整性和可用性。 安全数据交换系统可以解决哪些问题? 安全数据交换系统主要解…...

基于鸿蒙API10的RTSP播放器(五:拖动底部视频滑轨实现跳转)
拖动前播放位置: 拖动后播放位置: 在Slider组件中,添加onChange方法进行监听,当视频轨道拖放结束时,触发this.seekTo()函数,其中seekTo函数需要传递一个视频已播放时长作为参数 Slider({ value: this.p…...
pointer-events
认识pointer-events属性 pointer-events是一个 CSS 属性,用于控制元素在鼠标事件中的表现。 一、可能的值 auto(默认值): 元素对鼠标事件的响应正常。鼠标可以与该元素进行交互,如点击、悬停等。none: 元素…...

RAG 在企业应用中落地的难点与创新分享
在2024稀土开发者大会-AI Agent与应用创新分会上,我有幸分享了我们团队在企业应用中实施RAG(检索增强生成)的难点与创新。希望通过这篇文章,与大家探讨我们在实践中遇到的问题和解决方案,为从事相关工作的朋友提供一些…...

苹果CMS海洋CMS那个更容易被百度收录?苹果CMS站群
SEO优化和搜索引擎的友好性常常是网站管理员关注的重点。苹果CMS(maccmscn)和海洋CMS都是国内常见的CMS平台,但在搜索引擎优化(SEO)和百度收录方面,苹果CMS凭借其优秀的插件生态系统,特别是泛目…...
高教社杯数模竞赛特辑论文篇-2013年B题:碎纸复原模型与算法
目录 摘要 一、问题重述 二、问题分析 三、符号说明与模型假设 3.1 符号说明 3.2 模型假设 3.3 假设说明 四、模型的建立与求解 4.1 一维碎纸复原模型 4.1.1 图像的预处理 4.1.2 碎纸特征的提取 4.1.3 基于文字特征的识别序列 4.1.4 碎纸距离的定义 4.1.5 复原 TSP 问题 4.1.6 …...

多线程面试题-28问
1、查询Java有哪些线程? public class MultiThread {public static void main(String[] args) {// 获取 Java 线程管理 MXBeanThreadMXBean threadMXBean ManagementFactory.getThreadMXBean();// 不需要获取同步的 monitor 和 synchronizer 信息,仅获…...
golang学习笔记16——golang部署与运维全攻略
推荐学习文档 golang应用级os框架,欢迎star基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总golang学习笔记01——基本数据类型golang学习笔记02——gin框架及基本原理golang学习笔记03——gin框架的核心数据结构golang学…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...