当前位置: 首页 > web >正文

JavaScriptAPI编程_History对象(获取浏览历史)

History对象简介

JavaScript history 对象中包含了用户在浏览器中访问过的历史记录,其中包括通过浏览器浏览过的页面,以及当前页面中通过加载的页面。我们可以通过 window 对象中的 history 属性来获取 history 对象,由于 window 对象是一个全局对象,因此在使用window.history时可以省略 window 前缀,例如window.history.go()可以简写为history.go()。

history 对象中的属性

下表中列举了 JavaScript history 对象中常用的属性及其描述:

属性说明
length返回浏览历史的数目,包含当前已经加载的页面。
scrollRestoration利用浏览器特性,使我们在返回上一页或者下一页时,将页面滚动到之前浏览的位置,该属性有两个值,分别是 auto(表示滚动)与 manual(表示不滚动)。
state返回浏览器在当前 URL 下的状态信息,如果没有调用过 pushState() 或 replaceState() 方法,则返回默认值 null。

示例

<script type="text/javascript">console.log(history.length);console.log(history.scrollRestoration);console.log(history.state);
</script>

在这里插入图片描述

history 对象中的方法

下表中列举了 JavaScript history 对象中常用的方法及其描述:

方法说明
back()参照当前页面,返回历史记录中的上一条记录(即返回上一页),您也可以通过点击浏览器工具栏中的←按钮来实现同样的效果。
forward()参照当前页面,前往历史记录中的下一条记录(即前进到下一页),您也可以通过点击浏览器工具栏中的→按钮来实现同样的效果。
go()参照当前页面,根据给定参数,打开指定的历史记录,例如 -1 表示返回上一页,1 表示返回下一页。
pushState()向浏览器的历史记录中插入一条新的历史记录。
replaceState()使用指定的数据、名称和 URL 来替换当前历史记录。

示例

	<body><button onclick="myBack()">back()</button><button onclick="myForward()">forward()</button><button onclick="myGo()">go()</button><button onclick="myPushState()">pushState()</button><button onclick="myReplaceState()">replaceState()</button><script type="text/javascript">function myBack() {history.back();}function myForward() {history.forward();}function myGo() {var num = prompt('请输入一个整数', '1');history.go(num);}function myPushState() {var state = { 'page_id': 1, 'user_id': 5 }var title = 'JavaScript'var url = 'index.html'history.pushState(state, title, url)console.log(history.state);}function myReplaceState() {var state = { 'page_id': 3, 'user_id': 5 }var title = 'history'var url = 'index.html'history.replaceState(state, title, url)console.log(history.state);}</script></body>

在这里插入图片描述

http://www.xdnf.cn/news/11215.html

相关文章:

  • 插件与控件的区别
  • Linux多线程(2)-线程间同步的5种方式,一次性说清楚!
  • VMware虚拟机Windows 10安装使用教程(非常详细)从零基础入门到精通,看完这一篇就够了
  • 【Maven入门篇】(3)依赖配置,依赖传递,依赖范围,生命周期
  • 软件版本号扫盲——Beta RC Preview release等
  • latex如何输入正确的 双引号
  • WinForm中常用控件
  • C#中CheckListBox的用法
  • 搭建Serv-U FTP服务器共享文件外网远程访问「无公网IP」
  • 使用CImage类
  • Linux系统 虚拟机安装教程_虚拟机安装linux系统
  • 镜头选型——景深计算
  • 86年版五笔和98年版五笔区别
  • C语言从入门到精通保姆级教程(2021版上)
  • Response.AddHeader使用实例
  • functionexists php,PHP 检测函数是否被定义 function_exists 函数
  • [转载] Rss 与 Feed 的概念区别
  • 正则表达式匹配“不包含某些字符串”的技巧
  • SAPCRM销售订单集成创建
  • C#中Socket的简单使用
  • 注册系统热键 RegisterHotKey()
  • Android中ProgressDialog的使用
  • BP神经网络算法基本原理,bp神经网络算法详解
  • m3u8直播测试地址
  • 面向对象设计的八大基本原则
  • VMware虚拟机Windows 10安装使用教程(非常详细)从零基础入门到精通,看完这一篇就够了_vmware安装windows10
  • BUMO 区块链开发文档
  • Dogfooding-爱奇艺移动端后台灰度环境优化实践
  • Union和Union All的使用
  • jQuery.serializeArray() 函数详解