History对象表示窗口的浏览历史,由Window对象的history属性引用该窗口的History对象。
History对象相当于一个容器,它存储了客户端最近访问网页URL的列表信息。
1.使用JavaScript访问历史记录
History对象允许使用length属性来读取列表中url的个数,并可以调用back(),forward()和go()方法访问数组中的url。
back():返回到前一个url
forward():访问下一个url
go():可以根据不同参数访问可访问的url
如果参数为一个整数,则表示在History对象的历史列表中的位置距离,该方法会使浏览器访问这个指定距离处的URL,参数值若为正数,浏览器就会在历史列表中向前移动;若参数值为负数,浏览器就会在历史列表中向后移动。
例如,history.go(-1)就等价于history.back(),而history.go(1)等价于history.forward(),history.go(0)等价于刷新页面。
如果参数为一个字符串,则History对象能够从浏览历史中检索包含该字符串的url,并访问第一个检索到的URL
History对象的这3个方法与浏览器中自备的【后退】和【向前】按钮功能一样。
2.使用JavaScriopt访问帧的历史记录
每个窗口都有自己的历史记录,即所有的Window对象都会拥有自己的History对象,并通过独立的history属性引用。当打开新建窗口时,由于历史记录为空,所以对应的方法都是无效的。一般通过以下方法对不同的帧进行控制:(frames数组中参数n表示帧的下标)
frames[n].history.back();
frames[n].history.forward();
frames[n].history.go(m);