Web前端 Javascript笔记6

BOM 

前面的笔记讲的都是DOM(文档对象模型),DOM几乎被所有浏览器支持,是DOM的作用为操作HTML文档的重要手段。利用DOM可以对HTML文档中的所有元素,节点进行获取与访问,对标签属性与样式进行设置。 下面是一棵DOM树。

不过,这次要讲的是BOM(浏览器对象模型)

  • 在实际开发中,JavaScript经常需要操作浏览器窗口的控件,实现用户与页面的动态交换。bom可以访问与操作浏览器的控件。
  • BOM 的核心对象是 window,它表示浏览器的一个实例。window对象是JavaScript结构的顶层,对于每个打开的窗口,系统都会自动为其定义 window 对象。也就是每一个窗口就是一个window对象。
  • BOM对象指的就是window对象和它的所属子对象history、location、navigator、screen、document等对象。

1、history对象

BOM提供的history对象(历史记录跳转),可以在用户在浏览器中访问的URL历史记录进行操作。

我们做两个简单的网页

history.forward()=history.go(1):前进

history.back()=history.go(0):后退

<!DOCTYPE html>
<head><meta charset="UTF-8"><title>Document</title><style>h1{display:block;color: blue;font-Weight:600;margin: 0 auto;height: 100px;width: 300px;}</style>
</head>
<body><button>前进</button><button>后退</button><a href="第二个网页.html">点击一下去这个页面</a><h1>第一个网页</h1><script>const b=document.querySelectorAll("button")b[0].onclick=()=>{history.go(1)}b[1].onclick=()=>{history.go(0)}</script>
</body>
</html>
<!DOCTYPE html><meta charset="UTF-8">    <title>Document</title><style>h1{display:block;color: blue;font-Weight:600;margin: 0 auto;height: 100px;width: 300px;}</style>
</head>
<body><button>前进</button><button>后退</button><a href="第一个网页.html">点击一下去这个页面</a><h1>第222222个网页</h1>
</body>
<script>const b=document.querySelectorAll("button")b[0].addEventListener("click",()=>{history.forward()})b[1].addEventListener("click",()=>{history.back()})</script>
</html>

1.1、 pushState()与replace()方法

用来在浏览历史中添加与修改记录

pushState(state,title[,url])

replaceState(state,title[,url])

state表示一个与指定网址相关的状态对象,popstate事件触发时,该对象会传入回调函数,若不需要这个对象,可以填入null或者空字符串;URL表示新的网址,必须与当前页面处在同一个域中。方法执行后,浏览器的地址栏将显示最后添加或者修改的网址。

 <style>h1{display:block;color: blue;font-Weight:600;margin: 0 auto;height: 100px;width: 300px;}</style><body><button>前进</button><button>后退</button><a href="第一个网页.html">点击一下去这个页面</a><h1>第222222个网页</h1>
</body>
<script>const b=document.querySelectorAll("button")b[0].addEventListener("click",()=>{history.forward()history.pushState(null,null,"?a=嘿嘿嘿22222")})b[1].addEventListener("click",()=>{history.back()history.replaceState(null,null,"?a=happpppy哈哈哈")})
</script>


 

2、navigator对象

navigator对象提供提供有关浏览器的信息。

属性说明
appCodeName返回浏览器的代码名
appName返回浏览器的名称
appVersion返回浏览器的平台和版本信息
cookieEnable返回指明浏览器中是否启用 cookie 的布尔值
platForm返回运行浏览器的操作系统平台
userAgent返回由客户机发送服务器的user-agent 头部的值
geolocation返回浏览器的地理位置信息
languge返回浏览器使用的语言
onLine返回浏览器是否在线,在线返回 ture,否则返回 false
product返回浏览器使用的引擎(产品)

随便去找一个浏览器,然后进入控制台

<body><a href="https://www.python.org/">点击一下去这个去python</a>
</body>

方法说明
javaEnabled() 返回布尔值,该值指示浏览器是否启用了 Java。
<!DOCTYPE html>
<html>
<body>
<p ></p>
<script>
let java = navigator.javaEnabled();
document.querySelector("p").innerHTML = "Java 启用:" + java;
</script>
</body>
</html>


 

3、location对象

location可以改变当前用户在浏览器访问的URL

//location.reload()//强制刷新

强制刷新每个1秒执行一次  

 <script>setTimeout(()=>{location.reload()//强制刷新},1000)
</script>

//location.href='https://www.baidu.com'//跳转页面 

<script>setTimeout(()=>{location.href='https://www.baidu.com'//跳转页面},3000) 
</script>

hash返回一个URL的锚部分
host返回一个URL的主机名和端口
hostname返回URL的主机名
href返回完整的URL
pathname返回的URL路径名。
port返回一个URL服务器使用的端口号
protocol返回一个URL协议
search返回一个URL的查询部分
<body><a href="https://blog.csdn.net/cycyzh/article/details/137757006?spm=1001.2014.3001.5502#test"></a><script>let a = document.querySelector('a');console.log(a.href);      console.log(a.protocol);  console.log(a.host);     console.log(a.hostname); console.log(a.port+"(输出为空 - https 默认端口为 443)"); console.log(a.pathname);console.log(a.search);   console.log(a.hash);      console.log(a.origin);    </script>
</body>

 


 

4、screen对象

返回当前客户端屏幕相关的属性信息,比如屏幕的宽度高度

availHeight返回屏幕的高度(不包括Windows任务栏)
availWidth返回屏幕的宽度(不包括Windows任务栏)
colorDepth返回目标设备或缓冲器上的调色板的比特深度
height返回屏幕的总高度
pixelDepth返回屏幕的颜色分辨率(每象素的位数)
width返回屏幕的总宽度
<script>console.log("屏幕的高度(不包括Windows任务栏)="+screen.availHeight)console.log("屏幕的宽度(不包括Windows任务栏)="+screen.availWidth)console.log("屏幕的总高度="+screen.height)console.log("屏幕的总宽度="+screen.width)console.log("屏幕的颜色分辨率="+screen.pixelDepth)console.log("设备或缓冲器上的调色板的bit深度="+screen.colorDepth)</script>

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

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

相关文章

Linux下SPI设备驱动实验:创建SPI节点及SPI设备子节点

一. 简介 SPI 驱动框架和 I2C 很类似&#xff0c;都分为主机控制器驱动和设备驱动。主机控制器驱动一般由半导体厂商写好&#xff0c;我们来编写SPI设备驱动代码。 前一篇文章分析了 IMX6U系列芯片的 SPI中片选信号的处理&#xff0c;文章如下&#xff1a; I.MX6ULL SPI 主机控…

学习Python先从了解Python开始

Python是一种高级编程语言&#xff0c;它的语法简洁易读&#xff0c;功能强大&#xff0c;应用领域广泛。Python不仅适用于数据科学、机器学习、Web开发等领域&#xff0c;还可以用于自动化脚本编写、游戏开发等。在本文中&#xff0c;我们将探讨Python的特点、应用领域以及未来…

噪声系数测试之增益法

提到增益法测试噪声系数,大家并不陌生,这是一种简洁的测试方法,精度不如Y因子法,但是在某些测试场合,比如只有频谱仪而没有噪声头时,且待测件具有非常高的增益时,就可以使用增益法测试噪声系数。 增益法测试噪声系数的连接示意图如图1所示,其思路为:DUT输入端端接50 …

【UE 材质】雨水流淌效果

在上一篇&#xff08;【UE 材质】雨滴效果&#xff09;基础上继续实现雨水从顶部沿着墙壁侧面向下流淌的效果 效果 步骤 1. 下载所需纹理 2. 新建一个材质函数&#xff0c;这里命名为“MF_Weather_Drips”&#xff0c;在材质函数中添加如下节点 其中输入节点的默认值分别为…

【leetcode面试经典150题】61. 反转链表 II(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

【MIT6.824】lab2C-persistence, lab2D-log compaction 实现笔记

引言 lab2C的实验要求如下 Complete the functions persist() and readPersist() in raft.go by adding code to save and restore persistent state. You will need to encode (or “serialize”) the state as an array of bytes in order to pass it to the Persister. Us…

WebLogic 数据源连接泄露

编码时&#xff0c;有时会忘记释放使用的数据源连接&#xff0c;造成连接泄露&#xff0c;没有连接资源可用。 现象 java.sql.SQLException: Cannot obtain XAConnectionat weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1691)at weblogic.jdbc.jta.…

hackthebox - Redeemer

2024.4.19 TASK 1 Which TCP port is open on the machine? 6379 TASK 2 Which service is running on the port that is open on the machine? redis TASK 3 What type of database is Redis? Choose from the following options: (i) In-memory Database, (ii) Traditiona…

logisim 图解超前进位加法器原理解释

鄙人是视频作者&#xff0c;文件在视频简介的网盘链接。 找规律图解超前进位加法器与原理解释_哔哩哔哩_bilibili 一句话就是“把能导致进位到这个位置的情况全都穷举一遍。” 穷举情况看图中算式。 视频讲解比较啰嗦。

JavaFX--基础简介(1)

一、介绍 中文官网&#xff1a;JavaFX中文官方网站OpenJFX 是一个开源项目,用于桌面、移动端和嵌入式系统的下一代客户端应用程序平台。openjfx.cn是OpenJFX(JavaFX)的标准中文翻译网站&#xff0c;致力于方便开发者阅读官方文档和教程。https://openjfx.cn/ JavaFX 是一个开…

GUI04-深入分析基于框架窗口的应用

复杂应用最常见的桌面程序&#xff0c;基本都使用框架式的主窗口。本节涉及&#xff1a; 常见的应用中&#xff0c;哪些使用了框架窗口&#xff1f;wxWidgets 项目配置详解&#xff08;为将来手工写wxWigets项目配置打基础&#xff09;&#xff1b;复习如何使用Code::Blocks的向…

javaagent使用

Java Agent是什么&#xff1f; Java Agent是Java平台提供的一个强大工具&#xff0c;它可以在运行时修改或增强Java应用程序的行为。是在JDK1.5以后引入的&#xff0c;它能够在不影响正常编译的情况下修改字节码&#xff0c;相当于是在main方法执行之前的拦截器&#xff0c;也叫…

MySQL高级(索引-性能分析-profile)

show profiles 能够在做SQL优化时帮助我们了解时间都耗费到哪去了。通过 have_profiling参数&#xff0c;能够看到当前MySQL 是否支持 profile 操作&#xff1a; select have_profiling 默认 profiling 是关闭的 select profiling; 可以通过 set 语句在 session / global 级…

unordered系列关联式容器和开散列与闭散列的模拟实现

文章目录 unordered系列关联式容器底层结构哈希的概念哈希冲突哈希函数常见哈希函数 哈希冲突的解决闭散列开散列 闭散列模拟实现基本框架基本函数 开散列模拟实现 unordered系列关联式容器 之前我们讲到&#xff0c;STL提供了底层为红黑树的一系列关联式容器&#xff0c;可以…

java项目连接sqlserver时报ssl相关错误,如何解决?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

MySQL数据库-优化慢查询

1、什么是慢查询&#xff1f; 慢查询就是SQL执行时间过长&#xff0c;严重影响用户体验的SQL查询语句。当它频繁出现时数据库的性能和稳定性都会受到威胁 慢查询是数据库性能瓶颈的常见原因&#xff0c;是指SQL执行时间超过阈值&#xff1b;可能由于复杂的连接、缺少索引、不恰…

ssd回收站清空几天可找回?ssd数据回收站删除如何恢复

随着固态硬盘&#xff08;SSD&#xff09;的普及&#xff0c;越来越多的用户选择使用SSD作为他们的主要存储设备。然而&#xff0c;与传统的硬盘相比&#xff0c;SSD的数据恢复可能更具挑战性。当我们在SSD上误清空回收站后&#xff0c;很多人都会问&#xff1a;这些数据还能恢…

浅浅了解一下 LibTorch

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ LibTorch 是 PyTorch 提供的一个二进制发行版&#xff0c;包含了所有必要的头文件、库和 CMake 配置文件&#xff0c;便于开发者依赖 PyTorch 开发应用。用户可以从 PyTorch 官网下载包含最新 LibTorch…

超实用!2024年必看的10个导航栏设计

如果说到UI设计中最常用的组件&#xff0c;一定有导航栏。对一个网站/APP来说&#xff0c;导航栏就像旅途中的指南针&#xff0c;告诉用户现在在哪里&#xff0c;可以到哪里去。 一个直观、易用的导航栏能显著提升用户体验&#xff0c;增加网站的点击率和浏览量。不过&#xf…

React Hooks(常用)笔记

一、useState&#xff08;保存组件状态&#xff09; 1、基本使用 import { useState } from react;function Example() {const [initialState, setInitialState] useState(default); } useState(保存组件状态) &#xff1a;React hooks是function组件(无状态组件) &#xf…