JavaScript 使用back()和forward()方法进行站点导航

History 对象提供back()、forward()和go()方法来实现站点页面的导航。back()和forward() 方法实现的功能分别与浏览器工具栏中“后退”和“前进”导航按钮相同,而go()方法则可接受合法参数,并将浏览器定位到由参数指定的历史页面。

这三种方法触发脚本检测浏览器的历史URL 地址记录,然后将浏览器定位到目标页面,整个过程与文档无关,但在IE 和NN 浏览器中这两种方法又存在着不同点。

在 IE3+中,back()和forward()方法模拟工具栏的物理行为,并不局限于框架集中特定的框架。

如果要确保框架集中特定框架的跨浏览器的行为,而不是跨浏览器版本的行为,则须将history.back()和history.forward()方法的引用传递给父窗口。

在 NN4 中,History 对象的back()和forward()方法遵循其基本功能,同时又变成一对Window 对象的方法window.back()和window.forward()。

除此之外,History 对象不局限于框架集中使用,当框架集中使用parent.frameName.history.forward()到达框架历史URL 地址记录的尾部时,此方法无效。

站点导航是 back()和forward()方法应用最为广泛的场合,可以想象在没有工具栏或菜单栏的页面(如用户注册进程中间页面等)中设置导航按钮的必要性。

考察站点页面导航的实例,先看简单的框架集文档“index.html”的代码:[code]

Sample Page! [/code]除非要在导航到另外一地址之前需要进行一些附加操作,否则只需将back()和forward() 方法作为参数传递给按钮定义的事件处理属性即可:[code][/code]出于兼容性考虑,一般通过框架对象的parent 属性回溯到父文档中调用back()和forward()方法进行导航。

值得注意的是,History 对象的back()和forward()方法只能通过目标窗口或框架的历史URL 地址记录列表分别向后和向前延伸,两者互为平衡。

这两种方法有个显著的缺点,就是只能实现历史URL 地址列表的顺序访问,而不能实现有选择的访问。

为此,History 对象引入了go() 方法实现历史URL 地址列表的随机访问。