history 对象保存着用户上网的历史记录,从窗口被打开的那一刻算起。因为 history 是 window 对象的属性,因此每个浏览器窗口、每个标签页甚至每个框架,都有自己的 history 对象与特定的 window 对象关联。出于安全考虑,开发人员无法得知用户浏览过的 URL 。不过,借用用户访问过的页面列表,可以在不知道实际 URL 的情况下实现后退和前进。
使用 go() 方法可以在用户的历史记录中任意跳转,可以向后,向前跳转。这个方法接收一个参数,表示向后或向前跳转的页面数,负数表示后退,正数表示向前跳转。例:
也可以给 go() 方法传递一个字符串参数,此时浏览器会跳转到历史记录中包含该字符串的第一个位置--可能是后退,也可能是前进,具体要看哪个位置近。如果历史记录中不包含该字符串,那么这个方法什么也不做。例:
另外,还可以使用两个简写的方法 back() 和 forward() 来代替 go(),这个两个方法可以模仿浏览器的“后退”和“前进”按钮。
除了上面介绍的几个方法外,history 对象还有一个 length属性,保存着历史记录的数量。这个数量包括所有历史记录,即所有的向后和向前的记录。对于加载到窗口、标签页或框架中的第一个页面而言,history.length 等于0。