history 对象表示当前窗口首次使用以来用户的导航历史记录。因为 history 是 window 的属性,所以每个 window 都有自己的 history 对象。出于安全考虑,这个对象不会暴露用户访问过的 URL,但可以通过它在不知道实际 URL 的情况下前进和后退。

1. 导航

  • go()方法可以在用户历史记录中沿任何方向导航,可以前进也可以后退。
  • 这个方法只接收一个参数,这个参数可以是一个整数,表示前进或后退多少步。
  • 负值表示在历史记录中后退(类似点击浏览器的“后退”按钮),而正值表示在历史记录中前进(类似点击浏览器的“前进”按钮)。
    1. // 后退一页
    2. history.go(-1);
    3. // 前进一页
    4. history.go(1);
    5. // 前进两页
    6. history.go(2);

go()有两个简写方法:back()和 forward()。顾名思义,这两个方法模拟了浏览器的后退按钮和前进按钮

  1. // 后退一页
  2. history.back();
  3. // 前进一页
  4. history.forward();

history 对象还有一个 length 属性,表示历史记录中有多个条目。 这个属性反映了历史记录的数量,包括可以前进和后退的页面。对于窗口或标签页中加载的第一个页面,history.length 等于 1。 通过以下方法测试这个值,可以确定用户浏览器的起点是不是你的页面:

  1. if (history.length == 1){
  2. // 这是用户窗口中的第一个页面
  3. }

总结:history 对象通常被用于创建“后退”和“前进”按钮,以及确定页面是不是用户历史记录中的第一条记录。