JavaScript可以挂钩并覆盖浏览器的后退和前进按钮吗?

Tyl*_*ler 4 html javascript dom

我们正在编写一个Web应用程序作为后端的控制面板,我们只使用JavaScript - 所有DOM元素都是动态创建的,根本没有静态HTML.

我们有一个模块/插件类型接口,模块是"视图"的集合 - 视图本质上是一个函数,它包含一个初始化方法,它接受一个div的arg,因此它知道在哪里绘制自己.

当用户在视图之间浏览时,我们会保留他们去过的地方和他们所在的历史等等.因此我们可以在视图之间提供后退/前进导航,以及在导航时保存视图的状态.

我们提供面包屑跟踪以及后退和前进按钮.我还想做的是挂钩浏览器后退/前进按钮,这样我们就可以拦截点击并覆盖它,以便浏览我们正在维护的历史记录 - 当它们到达我们维护的历史记录的第一页时我们当然不会覆盖并让他们离开我们的网站.

有一个共同的方法来做到这一点?或者浏览器明确地阻止了这种事情?

谢谢

med*_*iev 11

使用Ben Alman的jQuery-bbq插件:http://benalman.com/projects/jquery-bbq-plugin/,它提供了一个与后退/前进按钮结合使用的hashchange交叉浏览器.