在History.js中有没有办法知道何时按下后退按钮

mar*_*jop 5 javascript browser-history history.js

我已经开始测试History.js了.在了解它是如何工作以及没有之后popstate,相反statechange.当按下浏览器的后退按钮时,我正在寻找一种不同的方法.

原因是我需要知道状态移动之前的URL,从我要去的那个.根据项目包含的要点,只查看我们访问的URL.

我希望解决方案不是跟踪全局变量中访问的最新URL.

谢谢

ash*_*ack 18

我发现github上的解决方案对我来说有点过头了.除了在使用History改变状态之前,我创建了一个始终正确的bool.

var manualStateChange = true;

History.Adapter.bind(window,'statechange',function(){
    if(manualStateChange == true){
     // BACK BUTTON WAS PRESSED
    }
    manualStateChange = true;
});
Run Code Online (Sandbox Code Playgroud)

每次我以编程方式更改状态时,将bool设置为false:

manualStateChange = false;
History.pushState(null, null, currentPath);
Run Code Online (Sandbox Code Playgroud)


mar*_*jop 0

我最终使用 管理所有链接History.pushState,这样就不需要区分按下的后退按钮。我们以相同的方式处理所有状态更改。

编辑:在 History.js 的 Github 中发现这两个问题,可能会对某人有所帮助。 https://github.com/browserstate/history.js/issues/70 https://github.com/browserstate/history.js/issues/47