【发布时间】:2013-06-24 19:20:33
【问题描述】:
Stack Overflow 有几个与检测后退按钮按下相关的问题,其中最相关的一个是用于执行此操作的库列表:
https://stackoverflow.com/questions/116446/what-is-the-best-back-button-jquery-plugin
问题是,当我尝试使用该线程(和其他地方)中的库时,它们都是:
- 没有工作(不再工作;他们一定工作过一次)
- 不支持 IE8
- 破坏了 Backbone 的路由器
问题似乎是 Backbone 的路由器监视 hashchange 事件,这些其他库也是如此,它们这样做的方式会影响 Backbone 的路由器(例如,使后退按钮完全停止工作)。
所以,我的问题是,有没有人知道一种检测后退按钮按下的方法,该方法适用于 IE8+,并且(这是关键部分)不会破坏主干路由器?
或者如果做不到这一点,任何人都可以解释或指出如何在 Backbone.Router 支持的网站上实现自己的后退按钮预防吗?
【问题讨论】:
-
您在视图之间导航时是否使用了哈希。 caniuse.com/#feat=hashchangeIE8及以上有支持
-
您是否有任何特殊原因无法利用
pushStateAPI?看起来 Backbone.js 支持这个开箱即用 - backbonejs.org/#History -
问题恰恰在于:Backbone 的路由器使用 pushState API,所以如果我尝试检测返回按钮点击的常用技巧,我最终会破坏 Backbone。
标签: internet-explorer backbone.js backbone-routing