介绍
javascript history api 是 web api 的一部分,它允许我们与 浏览器的会话历史记录 进行交互。它提供了方法和属性来导航、操作和控制历史堆栈,使开发人员能够创建更加动态和交互式的用户体验,而无需重新加载整个页面。
javascript history api 的主要功能
history.back() history.forward() history.go(n) history.pushstate() history.replacestate()history.back() 方法
此方法将浏览器移动到会话历史记录中的上一页,相当于浏览器的后退按钮。仅当浏览器的历史堆栈中存在上一页时,此操作才有效。
示例:
1
2
3
4
5
6
7
8
9
10
11
<!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>
输出:
单击“返回”按钮会将用户带到上一页(如果历史堆栈中存在)。
立即学习“Java免费学习笔记(深入)”;
history.forward() 方法
此方法将浏览器移动到会话历史记录中的下一页,相当于浏览器的前进按钮。仅当浏览器历史堆栈中存在下一页时,此操作才有效。
示例:
1
2
3
4
5
6
7
8
9
10
11
<!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>
输出:
单击“前进”按钮会将用户带到下一页(如果历史堆栈中存在)。
history.go() 方法
参数 n 可以接受以下值:
正数“n” 使用户在堆栈中前进。 负数“n” 使用户在堆栈中向后。 如果n的值为0,它重新加载当前页面。history.pushstate() 方法
此方法用于在当前会话的历史堆栈中添加新条目,即当前浏览器选项卡中访问过的所有页面的集合。
示例:
我们将创建一个按钮元素并为其分配一个点击处理程序。在处理程序内部,我们调用 pushstate() 方法。这添加了一个具有与当前页面不同的url的新条目。
1
2
3
4
5
6
7
8
// html ->
<button>call pushstate()</button>
// javascript ->
var button = document.queryselector(button);
button.onclick = function() {
history.pushstate(null, , some-page);
}
输出:
目前,网址为 - https://www.codeguage.com/courses/js/examples/pushstate
当您点击按钮时,url 将更改为 - https://www.codeguage.com/courses/js/examples/some-page
这确认新条目已添加到当前会话的历史记录,同时更改浏览器地址栏中的 url。您还可以看到浏览器的后退箭头现在在左上角也处于活动状态
,单击该箭头将带您返回 -
https://www.codeguage.com/courses/js/examples/pushstate要知道的一件极其重要的事情是 pushstate() 会更改 url,而不会检查它是否实际存在。这是因为 pushstate() 的目的不是加载网页,而是只是向历史记录添加一个新条目。
history.replacestate() 方法
此方法用新条目替换当前会话历史堆栈中的当前条目。
示例:
和以前一样,我们有一个带有点击处理程序集的按钮。但这一次,在处理程序内部,我们调用 replacestate()将当前历史记录条目替换为新条目。
1
2
3
4
5
6
7
8
9
// HTML =>
<button>Call replaceState()</button>
// JavaScript =>
var button = document.querySelector(button);
button.onclick = function() {
history.replaceState(null, , some-page);
}
输出:
当前网址是 -
https://www.codeguage.com/courses/js/examples/replacestate当您点击按钮时,url 将更改为 -
https://www.codeguage.com/courses/js/examples/some-page浏览器网址已被替换,您可以注意到左上角的后退键未激活,确认新条目已尚未添加到历史堆栈,我们刚刚用新条目替换了当前条目。
就是这样!您已经成功了解了 javascript history api,以及如何在您的应用程序中使用和合并其不同的实用程序。
在 linkedin 上与我联系 :- linkedin
请查看我的 github,了解精彩的项目:- github
查看我的个人作品集:- aryan 的作品集
以上就是JavaScript 历史 API的详细内容,更多请关注php中文网其它相关文章!