首页 > 编程语言 >BOM编程

BOM编程

时间:2024-09-15 12:23:16浏览次数:3  
标签:存储 浏览器 编程 用户 用法 window BOM element

什么是 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);

标签:存储,浏览器,编程,用户,用法,window,BOM,element
From: https://blog.csdn.net/gege_0606/article/details/142133614

相关文章

  • [C高手编程] 字符串处理:长度、危险操作、格式化与字符串化
    ......
  • SQL编程题复习(24/9/15)
    练习题x4010-114检索出course表中前3门课程的课号及课程名称的记录10-115检索出students表中“信息学院”的学生姓名、性别和出生日期的记录10-116检索出students表中所有系名的记录,要求结果中系名不重复10-117检索出sc表中‘C001’课程未登记成绩的学生学号(MSSQL)10......
  • 青少年编程与数学 01-010 青少年成长管理 第九章 计划 6_2 计划原则
    青少年编程与数学01-010青少年成长管理第九章计划6_2计划原则第二节计划原则一、幸福生活,快乐成长二、面向未来,兼顾眼前(一)面向未来(1)顺应社会发展趋势(2)培养适应力与创新能力(3)关注个人兴趣与价值观(二)兼顾眼前(1)打好基础教育(2)适时调整与反馈(3)注重实践经验积累三、......
  • 从零开始学习Python编程
    Python是一种高级编程语言,具有简单易学、功能强大、应用广泛等特点。本文将从零开始介绍Python编程的基础知识,帮助初学者快速入门。一、Python简介Python是一种解释型、面向对象、动态类型的编程语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。Python......
  • Java并发编程 第六章 共享模型之无锁
    1.引子实现1packagecn.itcast.testcopy;importjava.util.ArrayList;importjava.util.List;publicclassTestAccount{  publicstaticvoidmain(String[]args){    Accountaccount=newUnsafeAccount(10000);    Account.demo(account);  }}......
  • Java并发编程 第六章 共享模型之无锁
    1.引子实现1packagecn.itcast.testcopy;importjava.util.ArrayList;importjava.util.List;publicclassTestAccount{  publicstaticvoidmain(String[]args){    Accountaccount=newUnsafeAccount(10000);    Account.demo(account);  }}......
  • Python 课程8-多线程编程和多进程编程
    前言        在现代编程中,处理并发任务是提高程序性能的关键之一。Python提供了多线程(threading)和多进程(multiprocessing)两种方式来实现并发编程。多线程适用于I/O密集型任务,而多进程则更适合CPU密集型任务。通过这两种技术,你可以高效地处理大规模数据、加速......
  • Day09.面向对象编程OOP(1)
    面向对象编程OOP面向过程&面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么......面对过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后才对某个分类下的细节进行面向过......
  • 2024年06月中国电子学会青少年软件编程(图形化)等级考试试卷(四级)答案 + 解析
    青少年软件编程(图形化)等级考试试卷(四级)分数:100题数:24一、单选题(共10题,共30分)1.运行下列程序,输入单词“PLAY”,最后角色说?()A.LY4APB.AP4LYC.YA4PLD.PL4AY正确答案:B答案解析:根据程序分析可知,首先获取单词字符数,然后奇数位的字母放在字符数左侧,......
  • 2024年06月中国电子学会青少年软件编程(图形化)等级考试试卷(一级)答案 + 解析
    青少年软件编程(图形化)等级考试试卷(一级)分数:100题数:37一、单选题音乐VideoGame1的时长将近8秒,点击一次角色,下列哪个程序不能完整地播放音乐两次?()A.B.C.D.正确答案:D答案解析:D选项只会播放一遍声音水果盲盒角色有6个造型,其中星星造型表示神秘大礼......