JavaScript Window History
在本教程中,您将了解 JavaScript 窗口历史对象。
History 对象
Window 对象的 history 属性是指 History 对象。 它包含浏览器会话历史,在当前框架或窗口中访问的所有页面的列表。
由于 Window 是一个全局对象并且它位于作用域链的顶部,因此可以在没有 window.
前缀的情况下访问 Window 对象的属性,即 window.history
,例如 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>
如果您的浏览器后退按钮处于活动状态,则单击此 Go Back 链接让你后退一步。
前进到下一页
您可以使用 History 对象的 forward()
方法,即 history.forward()
前进到会话历史记录中的下一页。 这与单击浏览器的前进按钮相同。
<script>
function goForward() {
window.history.forward();
}
</script>
<button type="button" onclick="goForward();">Go Forward</button>
如果您的浏览器前进按钮处于活动状态,则单击此 Go Forward 链接带您向前进一步。
转到特定页面
您还可以使用 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()
将根本不执行任何操作。