Stack Overflow有几个与检测后退按钮相关的问题,最相关的一个是用于执行此操作的库列表:
https://stackoverflow.com/questions/116446/what-is-the-best-back-button-jquery-plugin
问题是,当我尝试使用该线程(以及其他地方)的库时,它们都是:
问题似乎是Backbone的路由器监视hashchange事件,这些其他库也是如此,它们以影响Backbone的路由器的方式(例如,一个使后退按钮完全停止工作)这样做。
所以,我的问题是,有没有人知道一种检测后退按键的方法,哪种方法可以在IE8 +中运行,哪些(这是关键部分)不会破坏Backbone路由器?
或者失败了,有人甚至可以解释或指出我如何在Backbone.Router驱动的网站上实现后退按钮预防吗?
答案 0 :(得分:1)
如果您尝试使用后退按钮(例如删除事件)来消除特定点击次数的触发,最简单的方法是首先使用preventDefault()作为onclick事件的一部分,防止将它们添加到历史记录中功能
如果这是你的问题,这将是一篇很好的文章:http://lostechies.com/derickbailey/2011/08/03/stop-using-backbone-as-if-it-were-a-stateless-web-server/
这是一种使用Backbone检测后退点击的相当简单的方法:backbone routing detecting whether forward or back pressed
答案 1 :(得分:1)
如果您使用的是pushState,则可以使用window.onpopstate
window.onpopstate = function(event) {
console.log(document.location);
};