JavaScript 窗口历史记录
在本教程中,你将了解 JavaScript 窗口历史记录对象。
历史对象
Window 对象的 history
属性指的是历史对象。它包含浏览器会话历史记录,当前框架或窗口中访问的所有页面的列表。
由于 Window 是一个全局对象,并且它位于作用域链的顶部,因此 Window 对象的属性即 window.history
可以在没有 window.
前缀的情况下访问,例如 window.history.length
可以写为 history.length
。
以下部分将向你展示如何获取用户浏览历史记录的信息。但是,出于安全原因,不允许脚本访问存储的 URL。
获取访问的页数
window.history.length
属性可用于获取当前窗口的浏览器会话历史记录中的页数。它还包括当前加载的页面。
你可以使用此属性查看用户在当前浏览器会话期间访问了多少页面,如以下示例所示:
<script>
function getViews() {
alert("You've accessed " + history.length + " web pages in this session.");
}
</script>
<button type="button" onclick="getViews();">Get Views Count</button>
回到上一页
你可以使用 History 对象的 back()
方法,即 history.back()
返回会话历史记录中的上一页。它与单击浏览器的后退按钮相同。
<script>
function goBack() {
window.history.back();
}
</script>
<button type="button" onclick="goBack();">Go Back</button>
如果你的浏览器后退按钮处于活动状态,则单击此 “返回” 链接会使你退后一步。
前进到下一页
你可以使用 History 对象的 forward()
方法,即 history.forward()
前进到会话历史记录中的下一页。它与单击浏览器的前进按钮相同。
<script>
function goForward() {
window.history.forward();
}
</script>
<button type="button" onclick="goForward();">Go Forward</button>
如果你的浏览器转发按钮处于活动状态,则单击此 “前进” 链接会向前迈进一步。
去一个特定的页面
你还可以使用 History 对象的 go()
方法从会话历史记录加载特定页面,也就是 history.go()
。此方法采用整数作为参数。负整数在历史记录中向后移动,正整数在历史记录中向前移动。
window.history.go(2); // Go back two pages
window.history.go(-1); // Go back one page
window.history.go(0); // Reload the current page
window.history.go(1); // Go forward one page
window.history.go(2); // Go forward two pages
提示: 如果你尝试访问并不在窗口的历史存在,那么 back()
, forward()
和 go()
会什么也不做。