【你也能从零基础学会网站开发】Web建站之javascript入门篇 History对象与Location对象

🚀 个人主页 极客小俊
✍🏻 作者简介:程序猿、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注

History历史对象

对象介绍属于window的子对象, 常用于返回到已经访问过的页面!

常见方法如下表:

方法功能说明
history.length历史记录数
history.back()返回上一页
history.forward()前进一页
history.go()前进或后退num页,num为0时表示页面刷新

举个栗子

<input type="button" value="返回" onclick="history.back()">
<input type="button" value="前进" onclick="history.forward()">
<input type="button" value="刷新" onclick="history.go(0)">

相当于:

小知识

有时候,需要从一个页面直接跳到另一个页面。
此时可以通过调用history对象的go方法来实现,该方法可以直接跳转到某个历史URL。
例如以下代码可以跳转到地址列表中编号为当前位置减n的地址所指的页面。
语法: history.go(n)
当n>0时,装入历史表中的往前数的第n个页面;n=0时装入当前页面;n<0时,装入历史表中往后数的第n个页面。

另一种更为直接的跳转方法是使用地址对象,设置地址对象的location属性即可打开指定的地址卸载文档 。

如图

举个栗子

<script>
  //指定秒数
  var scnds = 5;
  function Go(){
      var info = document.getElementById('info');
      --scnds;
      if(scnds==0){
          window.location.href="https://www.baidu.com";
      }else{
          info.innerHTML='浏览器将在'+scnds+'秒以后自动跳转到百度!';
      }
  }
  //定时器
  setInterval(Go,1000);
</script>

<h2 id="info"></h2>

history对象其主要作用是用来跟踪窗口中曾经使用的URL,由document对象的history属性保持引用。通过使用history对象可以获知浏览器窗口近来访问过的网页个数,还可以实现从一个页面跳到另一个页面,在实际应用中,如涉及到页面的跳转问题,可以用这个对象来解决 , 前进到上一页和后退到下一页使用history对象的back和forward方法,可以实现和浏览器提供的后退和前进功能。

例如:

history.back() 
history.forward() 

Location对象

属于window的子对象,常用于获取和改变当前浏览的网址

Location对象常用的属性:

href 	             	当前窗口正在浏览的网页地址
replace(url)		转向到url网页地址
reload()			重新载入当前网址,同按下刷新按钮

我们可以获取Location对象的所有属性看看!

例如:

var showtext = "Location对象属性列表:<br>";
 for (var propname in location) {
     showtext += propname + ": " + location[propname] + "<br>";
 }
 document.write(showtext);

如图

URL小知识

URL也就是路径地址的意思,在网页中指的是访问的路径。

它的构成是有一定的规范的,通常情况下,一个URL会有下面的格式:

协议(//)+主机:端口(/)+路径名称(#)+哈希标识(?)+搜索条件

这些部分是满足这样的要求的:

协议是URL的起始部分,直到包含到第一个冒号
主机描述了主机和域名,或者一个网络主机的IP地址
端口描述了服务器用于通讯的通讯端口 路径名称描述了URL的路径方面的信息

哈希标识描述了URL中的锚名称,包括哈希掩码(#)。此属性只应用于HTTP的URL
搜索条件字符串包含变量和值的配对,每对之间由一个&连接。

获取指定地址的各属性值

通常在网页编程时,会涉及对地址的处理的问题,如页面间的参数传递等,这些都与地址本身的一些属性有关。

这些属性大多都是用来引用当前文档的URL的各个部分。

举个栗子

with(document){
     var url = window.location.href
     write("地址协议:"+location.protocol+"<br/>")
     write("主机名:"+location.hostname+"<br/>")
     write("商品号:"+location.host+"<br/>")
     write("路径名:"+location.pathname+"<br/>")
     write("整个地址:"+url+"<br/>")
 }
 document.write(showtext);

如图


加载新网页

在网页设计过程中,时常会用到加载一个新的网页的情况。

这时仍然可以用Location对象。它的href属性就可以轻松完成这一功能,该属性返回值为当前文档的URL,如果将该属性值设置为新的URL,那么浏览器会自动加载该URL的内容,从而达到加载一个新的网页的目的。

如图

装载新文档与重新装入当前文档

文档的装载在应用中也是比较常见的,然而它的装方式一共就三种,

assign、replace、reload这三个方法。

其中reload方法用于根据浏览器reload按钮定义的策略重新装入窗口的当前文档。

replace方法取一个URL参数,从当前文档历史清单中装入URL,并显示指定页面。

代码


<script>
function Assign() {
     location.assign("https://www.baidu.com");//加载一个新文档,和location对象的href属一样
 }

 function Replace() {
     location.replace("https://mail.163.com");//使用新的URL替换当前文档,不加入到浏览器的历史中
 }

 function Reload() {
     location.reload("https://www.google.cn/");// 重新载入当前文档,有一个bool参数
 }
</script>

<div onClick="Assign()">前往百度首页</div>
<div onClick="Reload()">163邮箱登录</div>
<div onClick="Reload()">前往google首页</div>

刷新文档

在实际应用中,经常会涉及到对文档的刷新,JavaScript提供了一种刷新方法。
使用Location对象的reload()方法可以刷新当前文档。

reload()方法的语法代码如下所示:

location.reload(loadType) 

加载新文档

加载一个新文档,除了用open方法以外还可以用Location对象所提供的方法。
Location对象所提供的replace方法可以用一个URL来取代当前窗口的URL,
以达到加载新文档的效果 。

replace方法的语法代码如下所示:

location.replace(url) 

"👍点赞" "✍️评论" "收藏❤️"

大家的支持就是我坚持下去的动力!

如果以上内容有任何错误或者不准确的地方,🤗🤗🤗欢迎在下面 👇👇👇 留个言指出、或者你有更好的想法,
欢迎一起交流学习❤️❤️💛💛💚💚

更多 好玩 好用 好看的干货教程可以 点击下方关注❤️ 微信公众号❤️
说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇

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

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

相关文章

Linux本地搭建FastDFS系统

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

(BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等

看面试题可以是为了面试&#xff0c;也可以是对自己学到的东西的一种查漏补缺&#xff0c;更加深刻的去了解一些核心知识点 Spring面试高频问题 问题一&#xff1a;谈 需要zi料 绿色徽【vip1024b】 谈你对spring IOC 和 DI 的理解&#xff0c;它们有什么区别&#xff1f; **问题…

spring-boot-maven-plugin springboot打包配置问题

目录 一、打包可执行jar 二、打包非可执行jar 三、两种jar对比 springboot项目的pom文件中一般都配置了spring-boot-maven-plugin打包插件。 <!-- 打包插件依赖 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-b…

爆肝整理万能sass框架:react18+webpack5+typescript+ant Design,框架在手,交付无忧!!!

来活了&#xff0c;要求一周时间内快速给xxx业务开发一个sass系统平台&#xff0c;要求有角色权限控制&#xff0c;推荐模块&#xff0c;各种业务内容模块&#xff0c;莫慌&#xff0c;直接上代码&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 1.系统框架配置…

前端去除网页水印

按F12&#xff0c;打开开发者工具面板&#xff0c;然后直接在样式搜索backgroud 然后直接取消backgroud 的复选框即可。

基于Springboot的面向智慧教育的实习实践系统设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的面向智慧教育的实习实践系统设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&…

6.Java并发编程—深入剖析Java Executors:探索创建线程的5种神奇方式

Executors快速创建线程池的方法 Java通过Executors 工厂提供了5种创建线程池的方法&#xff0c;具体方法如下 方法名描述newSingleThreadExecutor()创建一个单线程的线程池&#xff0c;该线程池中只有一个工作线程。所有任务按照提交的顺序依次执行&#xff0c;保证任务的顺序性…

AWS入门实践-AWS CLI工具的使用介绍

AWS CLI&#xff08;Amazon Web Services Command Line Interface&#xff09;是一个强大的工具&#xff0c;它允许您直接从命令行与AWS服务进行交互。这不仅可以加快许多任务的处理速度&#xff0c;而且还可以通过脚本自动化。 一、AWS CLI工具的安装 1、Windows 安装下载…

【PLIO学习总结】laserMapping中的时间戳与状态更新逻辑

本文仅用于个人学习总结记录。如有错误&#xff0c;请批评指正。 0、PLIO简要思路 从PLIO的论文中&#xff0c;可以知道&#xff0c;完整的PLIO算法采用IMU和LiDAR数据同时作为“输入”&#xff0c;维护状态变量包括加速度和角速度。 同时&#xff0c;PLIO是一种distortion-…

手搭手RocketMQ发送消息

消息中间件的对比 消息中间件 ActiveMQ RabbitMQ RocketMQ kafka 开发语言 java erlang java scala 单击吞吐量 万级 万级 10万级 10万级 时效性 ms us ms ms 可用性 高(主从架构) 高(主从架构) 非常高(主从架构) 非常高(主从架构) 消息中间件: acti…

flutter入门

本文真对 Flutter 的技术特性&#xff0c;做了一些略全面的入门级的介绍&#xff0c;如果你听说过Flutter&#xff0c;想去了解它&#xff0c;但是又不想去翻厚厚的API&#xff0c;那么本文就是为你准备的。 随着纯客户端到Hybrid技术&#xff0c;到RN&Weex&#xff0c;再…

Vue2(五):收集表单数据、过滤器、内置指令和自定义指令

一、回顾 总结Vue监视数据 1.Vue监视数据的原理&#xff1a; 1.vue会监视data中所有层次的数据。 2.如何监测对象中的数据?通过setter实现监视&#xff0c;且要在new Vue时就传入要监测的数据。(1&#xff09;.对象中后追加的属性&#xff0c;Vue默认不做响应式处理(2&#…

苍穹外卖学习-----2024/03/010---redis,店铺营业状态设置

1.Redis入门 2.在Java中操作Redis 3.店铺营业状态设置 BUG!!! 今天在启动项目时&#xff0c;用到了Redis缓存数据库&#xff0c;但是却出现了报错信息&#xff1a; ERR Client sent AUTH, but no password is set。Caused by: io.lettuce.core.RedisCommandExecutionException…

Codeforces Round 933 (Div. 3) A~D

比赛链接 : codeforces.com/contest/1941 A . Rudolf and the Ticket 直接暴力即可 ; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \n #define lowbit(x) (x&(-x)) #define sz(a) (int)a.size() #define p…

【阿里云系列】-基于云效构建部署Springboot项目到ACK

介绍 为了提高项目迭代的速度加速交付产品给客户&#xff0c;我们通常会选择CICD工具来减少人力投入产生的成本&#xff0c;开源的工具比如有成熟的Jenkins&#xff0c;但是本文讲的是阿里云提高的解决方案云效平台&#xff0c;通过配置流水线的形式实现项目的快速部署到服务器…

LeetCode101题:对称二叉树(python3)

对称二叉树定义&#xff1a; 对于树中 任意两个对称节点 L 和 R &#xff0c;一定有&#xff1a; L.val R.val &#xff1a;即此两对称节点值相等。 L.left.val R.right.val &#xff1a;即 L的 左子节点 和 R 的 右子节点 对称。 L.right.val R.left.val &#xff1a;即 L…

arcgis在GIS滑坡易发性分析中的应用技术研究

我国是地质灾害多发国家&#xff0c;地质灾害的发生无论是对于地质环境还是人类生命财产的安全都会带来较大的威胁&#xff0c;因此需要开展地质灾害风险普查。利用遥感&#xff08;RS&#xff09;技术进行地质灾害调查工作具有宏观、快速、准确的特点&#xff0c;能反映出地质…

优先级队列(堆)(1)

目录 一. 优先级队列 1.1 概念 二. 优先级队列的模拟实现 2.1 堆的概念 2.2 堆的存储方式 2.3 堆的创建 2.3.1 堆向下调整 2.3.2 堆的创建 2.3.3 建堆的时间复杂度 2.4 堆的插入与删除 2.4.1 堆的插入 2.4.2 堆的删除 常见习题&#xff1a; 一. 优先级队列 1.1 概…

力扣:数组篇

1、数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 需要两点注意的是 数组下标都是从0开始的。数组内存空间的地址是连续的 因为数组的在内存空间的地址是连续的&#xff0c;所以我们在删除或者增添元素的时候&#xff0c;就难免要移动其他元素的地址。 …

【基础CSS】

本文章属于学习笔记&#xff0c;在https://www.freecodecamp.org/chinese/learn/2022/responsive-web-design/中练习 二、 CSS 样式&#xff0c;新建一个文件.css&#xff0c;该文件不含有style标签 <style>. h1&#xff0c;h2&#xff0c;p{ text-align&#xff1a;ce…