首页 >web前端 >js教程 >JavaScript 历史 API

JavaScript 历史 API

Patricia Arquette
Patricia Arquette原创
2024-12-25 18:06:13961浏览

介绍

JavaScript History APIWeb API 的一部分,它允许我们与 浏览器的会话历史记录 进行交互。它提供了方法和属性来导航、操作和控制历史堆栈,使开发人员能够创建更加动态和交互式的用户体验,而无需重新加载整个页面。

JavaScript History API 的主要功能

  1. history.back()
  2. history.forward()
  3. history.go(n)
  4. history.pushState()
  5. history.replaceState()

History.back() 方法

此方法将浏览器移动到会话历史记录中的上一页,相当于浏览器的后退按钮。仅当浏览器的历史堆栈中存在上一页时,此操作才有效。

示例:

<!DOCTYPE html>
<html>
<body>

<h1>The Window History Object</h1>
<h2>The history.back() Method</h2>

<button onclick="history.back()">Go Back</button>

</body>
</html>

输出:

The JavaScript History API

单击“返回”按钮会将用户带到上一页(如果历史堆栈中存在)。

History.forward() 方法

此方法将浏览器移动到会话历史记录中的下一页,相当于浏览器的前进按钮。仅当浏览器历史堆栈中存在下一页时,此操作才有效。

示例:

<!DOCTYPE html>
<html>
<body>

<h1>The Window History Object</h1>
<h2>The history.forward Method</h2>

<button onclick="history.forward()">Go Forward</button>

</body>
</html>

输出:

The JavaScript History API

单击“前进”按钮会将用户带到下一页(如果历史堆栈中存在)。

History.go() 方法

此方法用于导航到浏览器堆栈中的特定点。它需要一个参数'n',它指定我们想要通过历史堆栈导航到的页面的编号。

参数 'n' 可以接受以下值:

  • 正数“n” 使用户在堆栈中前进
  • 负数“n” 使用户在堆栈中向后
  • 如果'n'的值为0,它重新加载当前页面。

History.pushState() 方法

此方法用于在当前会话的历史堆栈中添加新条目,即当前浏览器选项卡中访问过的所有页面的集合。

示例:
我们将创建一个按钮元素并为其分配一个点击处理程序。在处理程序内部,我们调用 pushState() 方法。这添加了一个具有与当前页面不同的URL的新条目。

// HTML ->
<button>Call pushState()</button>

// JavaScript ->
var button = document.querySelector('button');
button.onClick = function() {
    history.pushState(null, ' ', 'some-page');
}

输出:

The JavaScript History API

目前,网址是 - https://www.codeguage.com/courses/js/examples/pushstate

当您点击按钮时,URL 将更改为 - https://www.codeguage.com/courses/js/examples/some-page

The JavaScript History API

这确认新条目已添加到当前会话的历史记录,同时更改浏览器地址栏中的 URL。您还可以看到浏览器的后退箭头现在在左上角也处于活动状态,单击该箭头将带您返回 -
https://www.codeguage.com/courses/js/examples/pushstate

要知道的一件极其重要的事情是 pushState() 会更改 URL,而不会检查它是否实际存在。这是因为 PushState() 的目的不是加载网页,而是只是向历史记录添加新条目

History.replaceState() 方法

此方法用新条目替换当前会话历史堆栈中的当前条目

示例:
和以前一样,我们有一个带有点击处理程序集的按钮。但这一次,在处理程序内部,我们调用 replaceState() 将当前历史记录条目替换为新条目。

<!DOCTYPE html>
<html>
<body>

<h1>The Window History Object</h1>
<h2>The history.back() Method</h2>

<button onclick="history.back()">Go Back</button>

</body>
</html>

输出:

The JavaScript History API

当前网址是 -
https://www.codeguage.com/courses/js/examples/replacestate

当您点击按钮时,URL 将更改为 -
https://www.codeguage.com/courses/js/examples/some-page

The JavaScript History API

浏览器网址已被替换,您可以注意到左上角的后退箭头键未激活,确认新条目已尚未添加到历史堆栈,我们刚刚用新条目替换了当前条目

就是这样!您已经成功了解了 JavaScript History API,以及如何在您的应用程序中使用和合并其不同的实用程序。

在 LinkedIn 上与我联系 :- Linkedin

请查看我的 GitHub,了解精彩的项目:- Github

查看我的个人作品集:- Aryan 的作品集

以上是JavaScript 历史 API的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn