一篇文章带你了解JavaScript Window History

一、前言

window.history 对象可以不用窗口window前缀编写。为了保护用户的隐私,有限制的JavaScript可以访问此对象。

history.back() - 与点击浏览器中的back按钮相同。

history.forward() - 与点击浏览器中的forward按钮相同。

二、history对象

window.history对象包含浏览器会话历史记录,在当前框架或窗口中访问的所有页面的列表,window.history可以编写没有窗口前缀的对象。

但是,为了保护用户的隐私,JavaScript如何访问此对象存在一些限制。window.history 对象包含浏览器历史记录。

三、获取访问的页面数

该history.length属性返回浏览器会话历史记录中当前窗口的页面数,还包括当前加载的页面。

var result = history.length; // 返回当前会话历史记录的大小

完整代码:

1 2<!DOCTYPE html> 3<html> 4<title>项目</title> 5 6<body style="background-color: aqua;"> 7 8<p>历史记录列表中的URL:</p> 9 10<p id="para"></p> 11 12<p> <b>注意: 13 </b>本示例在新框架中打开,并将被视为新的"会话":</p> 14 15<script> 16var result = history.length; 17document.getElementById("para").innerHTML = result; 18</script> 19 20</body> 21</html>

可以使用此属性来找出用户在当前浏览器会话期间访问了多少页面。

1. 返回上一页

该history.back()方法将历史记录列表中的上一个URL加载。

这与在浏览器中单击“后退按钮”相同。

1<!DOCTYPE html> 2<html> 3<title>项目</title> 4 5<body style="background-color: aqua"> 6 7<button onclick="history.back();">Go Back</button> 8 9<p><b>Note:</b> 单击此处的“后退”按钮将不会执行任何操作,因为历史记录列表中没有先前的URL</p> 10 11</body> 12</html>

上面的代码将显示以下输出。

2. 前进到下一页

该history.forward()方法将在历史记录列表中加载下一个URL。

这与在浏览器中单击“转发按钮”相同。

1 2<!DOCTYPE html> 3<html> 4<title>项目</title> 5 6<body style="background-color: aqua;"> 7 8<button onclick="history.forward();">前进</button> 9 10<p> <b>注意:</b>单击此处的"前进"按钮将不会执行任何操作,因为历史记录列表中没有下一个URL:</p> 11 12</body> 13</html>

上面的代码将显示以下输出(如果历史记录列表中不存在下一页,则此示例将不起作用):

3. 转到特定页面

可以使用**history.go()**方法从会话历史记录中加载特定页面。

此方法将整数作为参数,负整数在历史记录中向后移动,正整数在历史记录中向后移动。

1<!DOCTYPE html> 2<html> 3<title>项目</title> 4 5<body style="background-color: aqua;"> 6 7<button onclick="history.go(-2);">回退第2</button> 8 9<p> <b>注意:</b>单击此处的"回退第2页"按钮将不会执行任何操作,因为历史记录列表中没有先前的URL</p> 10 11</body> 12</html>

上面的代码将显示以下输出:

四、总结


本文基于JavaScript基础,介绍了如何通过window.history访问 JavaScript浏览器对象,如何获取对应网页的页数 访问网页的上一页,下一页,访问特定的页面,都做了详细的讲解。通过用丰富的案例帮助大家更好理解。

希望大家可以根据文章的内容,积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

使用JavaScript 语言,方便大家更好理解,希望对大家的学习有帮助。

-------------------********************************** End **********-------------**-----********-**********************************

往期精彩文章推荐:

欢迎各位大佬点击链接加入群聊【helloworld开发者社区】:https://jq.qq.com/?_wv=1027&k=mBlk6nzX进群交流IT技术热点。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

Android So动态加载 优雅实现与原理分析

背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我