History用户浏览历史记录对象,它提供了对浏览器会话历史操作的接口。即:在标签或框架中加载过的页面。可以通过window.history或直接使用history来引用该对象。
1. History对象
history对象保存着用户的上网历史,从用户窗口的时候就开始记录。history是window对象的属性,所以每个浏览器窗口、标签、框架都有自己的history对象,并与其自己的window对象关联。
var historyObj = window.history;
history记录用户访问的页面列表,出于安全考虑该对象并没有提供对页面URL的访问接口。但通过go()、back()、forward()方法,可以实现任意用户访问页面的跳转。
history.back(); // 返回用户访问的上一个页面
history.go(-1); // 等价于history.back() 方法
history.go(2); // 前进两个页面
history.forward(); // 前进一个页面
history.go('niefengjun.cn'); // 跳转到最近访问的'niefengjun.cn'页面
2. History对象属性与方法
History对象没有从其它对象继承属性或方法,其本身也只有与历史记录相关的几个属性和方法。
2.1 History对象中的属性
History.length
表示用户历史会话页面的数量。当用户从新的标签页或框架载入页面其值为“1”,每访问一个页面该值增加“1”。
window.history.length; // 2
我们一般会通过length属性判断是否可以完成到指定历史页面的跳转:
if (history.length>1){
history.go(-1);
}
History.state
该属性用于查看history堆栈的顶部状态,但该属性并不常用。
window.history.state; // null
2.2 History对象中的方法
History.back()
跳转到上一个会话页面,相当于history.go(-1)。
History.forward()
跳转到下一个会话页面,相当于history.go(1)。
History.go()
跳转到指定的会话页面,该方法接受一个整型或字符串类型的值。如:
history.go(-1);
history.go('niefengjun.cn');
