js中history对象
history
对象包含用户(在浏览器环境中)访问过的URL的信息。这个对象是window对象的一部分,可以用来在用户的浏览记录中前进和后退,或者对浏览记录进行添加和修改。
解决方案:
- 使用
history.back()
方法,这将触发浏览器后退到上一个URL。
history.back();
- 使用
history.forward()
方法,这将触发浏览器前进到前一次后退之前的URL。
history.forward();
- 使用
history.go()
方法,这个方法可以接受一个整数作为参数,表示向前或向后查看历史记录的页面数。
// 后退一页
history.go(-1);
// 前进一页
history.go(1);
- 使用
history.pushState()
和history.replaceState()
方法,可以在不产生新的浏览记录的条件下改变当前URL。
// 使用 pushState 添加新记录
history.pushState({page: 2}, "title 2", "?page=2");
// 使用 replaceState 替换当前记录
history.replaceState({page: 3}, "title 3", "?page=3");
- 监听浏览器的popstate事件,这个事件会在同一个文档内的历史记录条目(比如使用
history.pushState()
和history.replaceState()
方法操作的条目)被激活时触发。
window.onpopstate = function(event) {
// 获取历史记录条目的状态对象
var state = event.state;
// 根据状态对象进行相应的操作
};
注意:history.pushState()
和 history.replaceState()
方法不会在调用它们的时候立即触发 onpopstate
事件,onpopstate
事件会在浏览器的前进或后退操作中相应的历史记录条目被激活时触发。
评论已关闭