2

Stack Overflow 有几个与检测后退按钮按下相关的问题,最相关的一个是用于执行此操作的库列表:

https://stackoverflow.com/questions/116446/what-is-the-best-back-button-jquery-plugin

问题是,当我尝试使用该线程(和其他地方)中的库时,它们要么:

  • 没有工作(不再工作;他们一定工作过一次)
  • 不支持IE8
  • 破坏了 Backbone 的路由器

问题似乎是 Backbone 的路由器监视 hashchange 事件,这些其他库也是如此,它们这样做的方式会影响 Backbone 的路由器(例如,一个使后退按钮完全停止工作)。

所以,我的问题是,有没有人知道一种检测后退按钮按下的方法,该方法适用于 IE8+,它(这是关键部分)不会破坏主干路由器?

或者如果做不到这一点,任何人甚至可以解释或指出我如何在 Backbone.Router 驱动的站点上实现自己的后退按钮预防吗?

4

2 回答 2

1

如果你使用 pushState,你可以使用window.onpopstate

window.onpopstate = function(event) {
  console.log(document.location);
};
于 2014-02-01T07:15:51.323 回答
1

如果您试图消除使用后退按钮重新触发特定点击(如删除事件),最简单的方法是首先使用 preventDefault() 作为 onclick 事件函数的一部分来防止它们被添加到历史记录中。

如果这是您的问题,这将是一篇很好的文章: http: //lostechies.com/derickbailey/2011/08/03/stop-using-backbone-as-if-it-were-a-stateless-web-server /

这是一个相当简单的方法来检测 Backbone 的后点击:主干路由检测是向前还是向后按压

于 2013-07-09T20:59:41.123 回答