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

4
我们正在编写一个Web应用程序作为我们后端的控制面板,我们仅使用JavaScript - 所有DOM元素都是动态创建的,没有静态HTML。
我们有一个模块/插件类型接口,一个模块是“视图”的集合 - 视图本质上是包含一个初始化方法的函数,该方法接受一个DIV参数,以便它知道在哪里绘制自己。
当用户浏览视图时,我们维护他们所在的位置和路径等历史记录,以便我们可以提供视图之间的前进/后退导航,同时保存他们导航时的视图状态。
我们提供面包屑导航以及前进和后退按钮。我也想钩住浏览器的前进/后退按钮,以便我们可以拦截点击并覆盖它,以便浏览我们维护的历史记录 - 当他们到达我们维护的历史记录的第一页时,我们当然不会覆盖并让他们离开我们的网站。
这方面有常见的处理方法吗?还是浏览器明确阻止了这种事情?
谢谢

7
请将英语翻译成中文。仅返回已翻译的文本:提前回复“哦,这太可怕了,不要做任何事情” - sdleihssirhc
可能是重复的问题:https://dev59.com/THI-5IYBdhLWcg3wc4Cw - Jason LeBrun
一个替代方案是利用<link rel="prev" href="url"><link rel="next" href="url">元素。不幸的是,这并不是一个解决方案;我认为只有Opera和Firefox(带插件)支持得比较好。 - Brian
1
有没有人还记得swfaddress?=) - FlavorScape
我讨厌网站覆盖浏览器的返回按钮。 - Dave Lawrence
1个回答

11

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接