JavaScript基础(34)_BOM介绍、BOM对象

news2024/12/27 3:41:01

BOM

浏览器对象模型,BOM可以使我们通过JS来操作浏览器。在BOM中为我们提供了一组对象,用来完成对浏览器的操作。

BOM对象

Window:代表整个浏览器的窗口,同时window也是网页中的全局对象。
Navigator:代表当前浏览器的信息,通过该对象可以来识别不同的浏览器。
Location:代表当前浏览器的地址栏信息,通过Location可以获取地址栏信息,或者操作浏览器跳转页面。
History:代表浏览器的历史纪录,可以通过该对象来操作浏览器的历史纪录。由于隐私原因,该对象不能获取到具体的历史纪录,只能操作浏览器向前或向后翻页,而且该操作只是在当次访问时有效。
Screen:代表用户的屏幕信息,通过该对象可以获取到用户的显示器相关信息。

注意:以上BOM对象在浏览器中都是作为window对象的属性保存的,可以作为window对象的属性直接调用。它们也是“全局对象”,也可以直接使用。

Navigator对象
代表当前浏览器的信息,通过该对象可以来识别不同的浏览器。
由于历史原因,Navigator对象中的大部分属性都已经不能帮助我们识别浏览器了。一般我们只会使用userAgent来判断浏览器的信息。
alert(navigator.appName);
alert(navigator.userAgent);

History对象
可以用来操作浏览器向前或向后翻页。
属性:
length:可以获取到访问的链接数量。
forward():可以跳转下一个页面,作用和浏览器的前进按钮一样。
back():可以用来回退到上一个页面,作用和浏览器的回退按钮一样。
go():可以用来跳转到指定的页面。它需要一个整数作为参数:
1:向前跳转一个页面。
2:向前跳转二个页面,以此类推。
-1:向后跳转一个页面。
-2:向后跳转二个页面,以此类推。

Location对象
该对象中封装了浏览器的地址栏的信息。

如果直接打印location,则可以获取到地址栏的信息(当前页面的完整路径)

alert(location);

如果直接将Location属性修改为一个完整的路径,或相对路径,则我们的页面会自动跳转到该路径,并且会生成相应的历史记录。

location = "https://www.baidu.com/";

Location对象的方法:

assign():用来跳转到其他的页面,作用和直接修改location一样。

location.assign("https://www.baidu.com/");

reload():用于重新加载当前页面,作用和刷新按钮一样。如果在方法中传递一个true作为参数,则会强制清空缓存刷新页面。

location.reload(true);

replace():可以使用一个新的页面替换当前页面,调用完毕也会跳转页面。不会生成历史纪录,不能使用回退按钮回退。

location.replace("https://www.baidu.com/");

案例:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>BOM对象之跳转页面</title>
    <script>
        window.onload = function(){
            var forward = document.getElementById("forward");
            forward.onclick = function(){
                history.forward();
            }
            var go = document.getElementById("go");
            go.onclick = function(){
                history.go(1);
            }
        }
    </script>
</head>
<body>
    <a href="./键盘事件.html">点击进入键盘事件页面</a>
<br>
<br>
    <button id="forward">下一页</button>
    <button id="go">转到下一页</button> 
</body>
</html>
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>键盘事件</title>
    <script>
        window.onload = function(){
            var input = document.getElementsByTagName("input");
            document.onkeydown = function(event){
                event = event || window.event;
                // 不许输入数字
                if(event.keyCode >= 48 && event.keyCode <= 57){
                    return false;
                }
            }
            var back = document.getElementById("back");
            back.onclick = function(){
                history.back();
            }
        }
    </script>
</head>
<body>
    <input type="text">
    <button id="back">上一页</button>
</body>
</html>

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

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

相关文章

VS2022实用调试技巧超详解

文章目录 1. 什么是 bug2. 什么是调试(debug)3. Debug和 Release4.VS调试快捷键4.1 环境准备4.2 调试快捷键 5. 监视和内存观察5.1 监视5.2 内存 6. 调试举例17. 调试举例29. 编程常见错误归类9. 1 编译型错误9.2 链接型错误9. 3 运行时错误 本文章以VS2022为例讲解调试功能&am…

Linux内核分析(调度类和调度实体)

文章目录 前言一、调度类1. stop_sched_class2. dl_sched_class3. rt_sched_class4. fair_sched_class5. idle_sched_class总结 二、调度类中的操作函数三、调度实体 前言 调度是操作系统内核的一个关键职责&#xff0c;它涉及到如何合理分配CPU时间给不同的进程或线程。在Lin…

SpringBoot依赖之Spring Data Redis 一 String类型

Spring Data Redis(一) 概念 Spring Data Redis (AccessDriver) 依赖名称: Spring Data Redis (AccessDriver)功能描述: Advanced and thread-safe Java Redis client for synchronous, asynchronous, and reactive usage. Supports Cluster, Sentinel, Pipelining, Auto-Re…

输入输出(I/0)流

一、 File: 是所有文件或者文件夹的路径抽象表现形式 file自动重写了toString方法&#xff0c;所以直接打印显示的是file内容 构造方法&#xff1a; public File(String pathname) public File(String parent,String child) public File(File parent,…

rust操作rabbitmq

Rust 操作 Rabbitmq 使用docker快速部署rabbitmq docker pull rabbitmq:management # 15672为rabbitmq 管理员端口&#xff0c;默认账号密码为guest(账号密码相同) docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:managementrust 添加amqp库lapin car…

影院订票系统/电影院售票系统/电影院购票系统的设计与实现/影院管理系统

摘 要 “互联网”的战略实施后&#xff0c;很多行业的信息化水平都有了很大的提升。但是目前很多电影院日常业务仍是通过人工管理的方式进行&#xff0c;需要在影院订票投入大量的人力进行很多重复性工作&#xff0c;这样就浪费了许多的人力物力&#xff0c;工作效率较低&…

【Godot4自学手册】第四十五节用着色器(shader)制作水中效果

本节内容&#xff0c;主要学习利用着色器制作水波纹效果&#xff0c;效果如下&#xff1a; 一、搭建新的场景 首先我们新建场景&#xff0c;根节点选择Node2D&#xff0c;命名为Water&#xff0c;给根节点添加两个Tilemap节点&#xff0c;一个命名为Background主要用于绘制地…

JUC介绍

一、并发与并行 1.并发 早期计算机CPU是单核的&#xff0c;为了提高CPU的利用率&#xff0c;减少等待时间&#xff0c;使用到了并发工作的理论 并发就是将CPU资源合理分配给多个任务&#xff0c;当一个任务执行I/O操作时&#xff0c;转去执行其他任务 2.并行 针对多核CPU&…

25届科大讯飞飞星计划 AI研究算法工程师 面经

目录 一面/技术面 2024/08/15 &#x1f4cb; 总结&#xff1a; 本来应该是在7月底面试的&#xff0c;但因为有事就拖到了现在&#xff0c;或许是飞星计划里最晚面试的一批&#xff1f;面试官很和蔼&#xff0c;问的问题不算难&#xff0c;总体体验还算不错。 一面/技术面 2024/…

MySQL基础--逻辑存储结构,架构

逻辑存储结构 表空间&#xff08;ibd 文件&#xff09;&#xff1a;一个 mysql 实例可以对应多个表空间&#xff0c;用于存储记录&#xff0c;索引等数据。 段&#xff1a;分为数据段&#xff0c;索引段&#xff0c;回滚段&#xff0c;InnoDB 是索引组织表&#xff0c;数据段就…

Unity引擎基础知识

目录 Unity基础知识概要 1. 创建工程 2. 工程目录介绍 3. Unity界面和五大面板 4. 游戏物体创建与操作 5. 场景和层管理 6. 组件系统 7. 脚本语言C# 8. 物理引擎和UI系统 学习资源推荐 Unity引擎中如何优化大型游戏项目的性能&#xff1f; Unity C#脚本语言的高级编…

修复 iPad 卡在准备更新或正在进行更新的问题

为什么iPad 更新卡住了&#xff1f;原因很难确定&#xff0c;因为 iPad 的许多故障和状况都可能导致 iPad 无法更新 iOS 和应用程序。此外&#xff0c;很难弄清楚这种情况持续了多长时间。但是&#xff0c;您不必太担心&#xff0c;因为这只是一个小案例&#xff0c;您可以阅读…

Java入门(上)

day01 - Java基础语法 1. 人机交互 1.1 什么是cmd&#xff1f; 就是在windows操作系统中&#xff0c;利用命令行的方式去操作计算机。 我们可以利用cmd命令去操作计算机&#xff0c;比如&#xff1a;打开文件&#xff0c;打开文件夹&#xff0c;创建文件夹等。 1.2 如何打…

单元训练13:串行接口的进阶应用

蓝桥杯&#xff0c;小蜜蜂&#xff0c;单元训练13&#xff1a;串行接口的进阶应用 /** Description:* Author: fdzhang* Email: zfdcqq.com* Date: 2024-08-17 15:41:34* LastEditTime: 2024-08-17 19:48:35* LastEditors: fdzhang*/ #include "stc15f2k60s2.h"#defi…

算法工程师第四十天(647. 回文子串 516.最长回文子序列 动态规划总结篇 )

参考文献 代码随想录 一、回文子串 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 示例 1&#xff1a; 输入&#xff1a;s "abc"…

MySQL 异步主从复制流程解析

前言&#xff1a; 首先MySQL主从复制方式有多种&#xff0c;包括 binlog、GTID等&#xff0c;这里基于 binlog 的形式&#xff0c;解析异步主从复制流程 首先通过下面命令查看全部 binlog 日志文件 show binary logs; binlog 日志文件如下&#xff1a; 然后查看其中一个文件…

ECMAScript6语法:默认参数和rest参数

1、默认参数 默认参数即在定义函数的参数列表中指定了默认值的参数。在 ES5 中&#xff0c;并没有提供在参数列表中指定参数默认值的语法&#xff0c;要想为函数的参数指定默认值&#xff0c;只能在函数体中实现&#xff0c;示例代码如下&#xff1a; function table(width, …

MBR10200FCT-ASEMI智能AI专用MBR10200FCT

编辑&#xff1a;ll MBR10200FCT-ASEMI智能AI专用MBR10200FCT 型号&#xff1a;MBR10200FCT 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220F 批号&#xff1a;最新 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;10A 最大循环峰值反向电压&#xff08;VRRM&a…

西安旅游系统--论文pf

TOC springboot383西安旅游系统--论文pf 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不可跨域的鸿…

YOLOv8侦测任务更换主干网络成MobileNetV3

目录 1. 添加主干网络模块 ​编辑1.1 在init.py中添加模块名 1.2 主体代码中添加调用语句块 2. 配置yaml文件 3. 修改成功 1. 添加主干网络模块 1.1 在init.py中添加模块名 1.2 主体代码中添加调用语句块 2. 配置yaml文件 3. 修改成功 自己随便找一个程序跑一跑验证…