第十二讲_JavaScript浏览器对象模型BOM

JavaScript浏览器对象模型BOM

  • 1. 浏览器对象模型介绍
  • 2. location
    • 2.1 常用的属性
    • 2.2 常用的方法
  • 3. navigator
    • 3.1 常用的属性
  • 4. history
    • 4.1 常用的方法:
  • 5. 本地存储

1. 浏览器对象模型介绍

BOM(Browser Object Model) 是指浏览器对象模型,浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。

BOM由多个对象组成,其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对象都是该对象的子对象。

在这里插入图片描述

2. location

location对象包含有关文档当前位置的信息

2.1 常用的属性

  • href:完整的 url 地址,对其赋值时用于地址的跳转。
  • search:获取地址中携带的参数,符号后面的部分。
  • hash:获取地址中哈希值,符号#后面的部分。
<html>

  <style>
    div {
      text-align: center;
    }
  </style>

  <div>测试location对象</div>
  <div>
    <button class="btn1">点击跳转页面</button>
    <button class="btn2">点击获取url参数</button>
    <button class="btn3">点击获取url哈希值</button>
  </div>

  <script>
    const btn1 = document.querySelector(".btn1");

    btn1.addEventListener('click', () => {
      // 设置新的href,跳转到新的地址网页
      location.href = "https://blog.csdn.net/wenqi1992?spm=1010.2135.3001.5343"
    })

    // 点击前,在浏览器地址栏后面添加一串?XXXXXX,然后刷新页面,最后点击按钮
    const btn2 = document.querySelector(".btn2");
    btn2.addEventListener('click', () => {
      alert(location.search)
    })

    // 点击前,在浏览器地址栏后面添加一串#XXXXXX,然后刷新页面,最后点击按钮
    const btn3 = document.querySelector(".btn3");
    btn3.addEventListener('click', () => {
      alert(location.hash)
    })
  </script>
  
</html>

2.2 常用的方法

  • reload():刷新当前页面方法,传入 true 表示强制刷新。
  • replace():替换当前地址并刷新页面。

3. navigator

navigator对象记录了浏览器自身的相关信息。

3.1 常用的属性

  • userAgent:浏览器的平台和版本信息。
<html>
  <style>
    div {
      text-align: center;
    }
  </style>


  <div>测试navigator对象</div>

  <div>
    <button class="btn1">点击查看浏览器的信息</button>
  </div>

  <script>
    const btn1 = document.querySelector(".btn1");

    btn1.addEventListener('click', () => {
      alert(navigator.userAgent)
    })
  </script>
</html>

4. history

history对象主要管理历史记录,该对象与浏览器地址栏的操作相对应。

4.1 常用的方法:

  • back():后退
  • forward():前进
  • go():前进后退,参数大于 0 就是前进,参数小于 0 就是后退。

5. 本地存储

localStorage:本地存储数据,除非手动删除。
sesseionStorage:本地存储数据,会话关闭就删除。

<html>
  <style>
    div {
      text-align: center;
    }
  </style>


  <div>测试locationStorage和sessionStorage对象</div>

  <div>
    <button class="btn1">点击保存到locationStorage</button>

    <button class="btn2">点击保存到sessionStorage</button>
  </div>

  <script>
    const btn1 = document.querySelector(".btn1");
    btn1.addEventListener('click', () => {
      localStorage.setItem("name", "文大奇Quiin")
    })

    const btn2 = document.querySelector(".btn2");
    btn2.addEventListener('click', () => {
      sessionStorage.setItem("name", "文大奇Quiin")
    })
  </script>
  
</html>

在这里插入图片描述
在这里插入图片描述

复杂数据类型存储,需要先用 JSON.stringify(obj)转换成 JSON 字符串。取回来的 JSON 字符串,可以用 JSON.parse(jsonStr)转换成对象。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高通GAIA V3命令参考手册的研读学习(15):自定制命令的详细工作描述

先看第一个命令&#xff1a;GetManuFacturer 这个命令用来得到设备的制造商信息。 耳机发送这个命令&#xff0c;可以进一步地确认&#xff0c;是不是自己公司的设备。 比如&#xff0c;假定A公司做了一个蓝牙耳机&#xff0c;同时开发了一个手机APP用来控制它。 那么这个A…

【高质量精品】2024美赛B题22页word版高质量半成品论文+多版保奖思路+数据+前四问思路代码等(后续会更新)

一定要点击文末的卡片&#xff0c;进入后&#xff0c;获取完整论文&#xff01;&#xff01; B 题整体模型构建 1. 潜水器动力系统失效&#xff1a;模型需要考虑潜水器在无推进力情况下的行为。 2. 失去与主船通信&#xff1a;考虑无法从主船接收指令或发送位置信息的情况。…

蓝桥杯Web应用开发-display属性

display 属性 专栏持续更新中 display 属性可以用来设置元素在页面上的排列方式&#xff0c;也可用来隐藏元素。 display 属性值的说明如下表所示。 属性值说明block元素以块级方式展示。inline元素以内联方式展示。inline-block元素以内联块的方式展示。none隐藏元素。 b…

【微机原理与单片机接口技术】MCS-51单片机的引脚功能介绍

前言 MCS-51是指由美国Intel公司生产的一系列单片机的总称。MCS-51系列单片机型号有很多&#xff0c;按功能分位基本型和增强型两大类&#xff0c;分别称为8051系列单片机和8052系列单片机&#xff0c;两者以芯片型号中的末位数字区分&#xff0c;1为基本型&#xff0c;2为增强…

Python算法题集_反转链表

Python算法题集_反转链表 题41&#xff1a;反转链表1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【列表反转】2) 改进版一【直接赋值】3) 改进版二【递归大法】 4. 最优算法 本文为Python算法题集之一的代码示例 题41&#xff1a;反转链表 …

C#监听QQ消息自动回复-QQ自动化

整理 | 小耕家的喵大仙 出品 | CSDN&#xff08;ID&#xff1a;lichao19897314&#xff09; Q Q | 978124155 关于项目背景和微信自动化学习介绍 因为前面写了很多关于微信自动化的文章&#xff0c;网上有一位网友说他是做培训行业的&#xff0c;有时候除了微信对接客户还需要…

druid配置wall导致无法批量sql

1、现象 2、原配置 spring:autoconfigure:exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfiguredatasource:druid:stat-view-servlet:enabled: trueloginUsername: ***loginPassword: ***allow:web-stat-filter:enabled: truedynamic:druid: #…

kakfa系统架构

消息队列Kafka系统架构 Q:什么是Kafka&#xff1f; A&#xff1a;Kafka是由Apache软件基金会开发的一个开源流处理平台&#xff0c;由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息引擎、消息队列服务&#xff0c;它可以处理消费者规模的网站中的所有动作流数据。…

【GameFramework框架】三、快速启动

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录&#xff1a; https://blog.csdn.net/q7…

python常用pandas函数nlargest / nsmallest及其手动实现

目录 pandas库 Series和DataFrame nlargest和nsmallest 用法示例 代替方法 手动实现 模拟代码 pandas库 是Python中一个非常强大的数据处理库&#xff0c;提供了高效的数据分析方法和数据结构。它特别适用于处理具有关系型数据或带标签数据的情况&#xff0c;同时在时间…

动态库是怎么被加载的?

目录 1.动态库是如何被加载的&#xff1f; 2.那么虚拟地址和物理地址是如何映射的呢&#xff1f; 3.那么动态库的地址怎么来&#xff1f; 1.动态库是如何被加载的&#xff1f; 下面这个就是正常的进程是如何从磁盘中读取信息编译的&#xff1a; 而动态库就存储在共享区段&am…

Android简单支持项目符号的EditText

一、背景及样式效果 因项目需要&#xff0c;需要文本编辑时&#xff0c;支持项目符号&#xff08;无序列表&#xff09;尝试了BulletSpan&#xff0c;但不是很理想&#xff0c;并且考虑到影响老版本回显等因素&#xff0c;最终决定自定义一个BulletEditText。 先看效果&…

新春营销不间断,AI 整活更省心

新年、春节历来都是营销的大热节点&#xff0c;各种好物集、年货节、送礼清单比比皆是。这些新鲜玩法的背后是大量的品牌内容「弹药库」。 然而&#xff0c;品牌想在竞争激烈的新春季刷满存在感&#xff0c;并非易事。一方面&#xff0c;节日期间&#xff0c;消费者对于内容的审…

交叉验证之KFold和StratifiedKFold的使用(附案例实战)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

云计算、Docker、K8S问题

1 云计算 云计算作为一种新兴技术&#xff0c;已经在现代社会中得到了广泛应用。它以其高效、灵活和可扩展特性&#xff0c;成为了许多企业和组织在数据处理和存储方面的首选方案。 1.1 什么是云计算&#xff1f;它有哪些特点&#xff1f; 云计算是一种通过网络提供计算资源…

项目02《游戏-06-开发》Unity3D

基于 项目02《游戏-05-开发》Unity3D &#xff0c; 接下来做 背包系统的 存储框架 &#xff0c; 首先了解静态数据 与 动态数据&#xff0c;静态代表不变的数据&#xff0c;比如下图武器Icon&#xff0c; 其中&#xff0c;武器的名称&#xff0c;描述&#xff…

全网第一篇把Nacos配置中心客户端讲明白的

入口 我们依旧拿ConfigExample作为入口 public class ConfigExample {public static void main(String[] args) throws NacosException, InterruptedException {String serverAddr "localhost";String dataId "test";String group "DEFAULT_GROU…

搭建frp

1.frp 是什么&#xff1f; frp 是一款高性能的反向代理应用&#xff0c;专注于内网穿透。它支持多种协议&#xff0c;包括 TCP、UDP、HTTP、HTTPS 等&#xff0c;并且具备 P2P 通信功能。使用 frp&#xff0c;您可以安全、便捷地将内网服务暴露到公网&#xff0c;通过拥有公网…

解决nvrtc: error: invalid value for --gpu-architecture (-arch)

问题描述 在使用pytorch3d的时候&#xff0c;可以正常的import&#xff0c;但是在执行错误的使用就会报&#xff0c;nvrtc: error: invalid value for --gpu-architecture (-arch)&#xff0c;的错误&#xff0c;图片如下&#xff1a; 我的环境是&#xff1a; 显卡&#xff1…

精细管理药厂设备,制药机械设备管理平台系统助力生产提效

制药行业的复杂性要求对药品的品质和安全性进行严格控制&#xff0c;而这离不开高效管理各类机械设备。然而&#xff0c;随着制药企业规模的不断扩大和技术的迅猛进步&#xff0c;如何有效管理这些设备成为一个亟待解决的问题。在这一挑战面前&#xff0c;PreMaint制药机械设备…