当前位置: 首页 > news >正文

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. 两者的主要区别

特性sessionStoragelocalStorage
生命周期当前会话,关闭页面或窗口后数据清除永久存储,直到显式删除
作用范围当前标签页或窗口同源的所有标签页和窗口共享
典型用途临时数据存储(如表单输入)长期存储(如用户偏好设置、持久化数据)
存储容量约 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&#xff1f; BOM&#xff08;Browser Object Model&#xff09;是浏览器提供的对象和方法的集合&#xff0c;允许开发者操作浏览器窗口、页面跳转、URL、浏览器历史记录、用户设备信息等。window 对象是 BOM 的顶层对象&#xff0c;所有 BOM API 都直接或间接作为 …...

【C++ Primer Plus习题】16.1

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

音视频入门基础:AAC专题(1)——AAC官方文档下载

一、AAC简介 高级音频编码&#xff08;英语&#xff1a;Advanced Audio Coding&#xff0c;AAC&#xff09;是有损音频压缩的专利数字音频编码标准&#xff0c;由Fraunhofer IIS、杜比实验室、贝尔实验室、Sony、Nokia等公司共同开发。出现于1997年&#xff0c;为一种基于MPEG…...

RAG与LLM原理及实践(17)---Docker Redis Python Usage

目录 背景 Redis 环境 download 修改镜像 Run Redis Coding python redis download 基本使用 描述 完整代码 运行结果 高阶用法 序列化的方式 Snapshot 与 AOF 快照(RDB) AOF(Append-Only File) 代码 总结 发布与订阅 描述 代码 运行结果 注…...

技术分享-商城篇-营销模块-优惠券种类(二十六)

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

Apache-wed服务器环境的安装

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

HR8870:可PWM控制,4.5A直流有刷电机驱动数据手册

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

3D点云目标检测数据集标注工具 保姆级教程——CVAT (附json转kitti代码)

前言&#xff1a; 笔者尝试过很多3D标注软件都遇到很多问题&#xff0c;例如CloudCompare不适合做3D目标检测的数据集而且分割地面的时很繁琐&#xff1b;labelCloud没有三视图&#xff0c;视角难以调整标得不够精确&#xff1b;SUSTechPOINTS换帧麻烦、输出时存储在docker里面…...

获取zabbix API 监控数据shell脚本,自动日常巡检服务器信息、并发送指定群组

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

【spring】maven引入okhttp的日志拦截器打开增量注解进程

HttpLoggingInterceptor 是在logging-interceptor库中的:这个logging库老找不到 import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor;发现这仨是独立的库 pom中三个依赖 <!-- OKHTTP3 --><...

产品探秘|开物——面向AI原生和云原生网络研究的首选科研平台

在当今高速发展的信息技术领域&#xff0c;特别是对于那些致力于前沿科技探索与实践的高校而言&#xff0c;拥有一款能够支持复杂网络业务研究与开发的平台至关重要。开物™数据网络开发平台&#xff08;Data Network Development Platform&#xff0c;简称DNDP&#xff09;&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安全数据交换系统 搭建跨网数据传输通道

安全数据交换系统是一种专门设计用于在不同的网络、系统或组织之间安全地传输数据的软件或硬件解决方案。这种系统通常包含多种安全特性&#xff0c;以确保数据在传输过程中的保密性、完整性和可用性。 安全数据交换系统可以解决哪些问题&#xff1f; 安全数据交换系统主要解…...

基于鸿蒙API10的RTSP播放器(五:拖动底部视频滑轨实现跳转)

拖动前播放位置&#xff1a; 拖动后播放位置&#xff1a; 在Slider组件中&#xff0c;添加onChange方法进行监听&#xff0c;当视频轨道拖放结束时&#xff0c;触发this.seekTo()函数&#xff0c;其中seekTo函数需要传递一个视频已播放时长作为参数 Slider({ value: this.p…...

pointer-events

认识pointer-events属性 pointer-events是一个 CSS 属性&#xff0c;用于控制元素在鼠标事件中的表现。 一、可能的值 auto&#xff08;默认值&#xff09;&#xff1a; 元素对鼠标事件的响应正常。鼠标可以与该元素进行交互&#xff0c;如点击、悬停等。none&#xff1a; 元素…...

RAG 在企业应用中落地的难点与创新分享

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

苹果CMS海洋CMS那个更容易被百度收录?苹果CMS站群

SEO优化和搜索引擎的友好性常常是网站管理员关注的重点。苹果CMS&#xff08;maccmscn&#xff09;和海洋CMS都是国内常见的CMS平台&#xff0c;但在搜索引擎优化&#xff08;SEO&#xff09;和百度收录方面&#xff0c;苹果CMS凭借其优秀的插件生态系统&#xff0c;特别是泛目…...

高教社杯数模竞赛特辑论文篇-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有哪些线程&#xff1f; public class MultiThread {public static void main(String[] args) {// 获取 Java 线程管理 MXBeanThreadMXBean threadMXBean ManagementFactory.getThreadMXBean();// 不需要获取同步的 monitor 和 synchronizer 信息&#xff0c;仅获…...

golang学习笔记16——golang部署与运维全攻略

推荐学习文档 golang应用级os框架&#xff0c;欢迎star基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总golang学习笔记01——基本数据类型golang学习笔记02——gin框架及基本原理golang学习笔记03——gin框架的核心数据结构golang学…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...