Javascript Angular js-模拟浏览器后退/前进按钮禁用

Javascript Angular js-模拟浏览器后退/前进按钮禁用,javascript,angularjs,pushstate,Javascript,Angularjs,Pushstate,我正在开发一个需要模拟浏览器后退/前进按钮的应用程序(我已经实现了两个按钮)。我可以使用window.history.forward()和window.history.back()实现此功能。该功能可以根据需要工作。 但我有一个问题,我有禁用前进按钮的要求时,并没有更多的网页浏览进一步,反之亦然,为后退按钮 我尝试过使用以下解决方法,但没有任何效果 if(!window.history.next){ $scope.abcService.enableForwardButton = fals

我正在开发一个需要模拟浏览器后退/前进按钮的应用程序(我已经实现了两个按钮)。我可以使用
window.history.forward()
window.history.back()
实现此功能。该功能可以根据需要工作。 但我有一个问题,我有禁用前进按钮的要求时,并没有更多的网页浏览进一步,反之亦然,为后退按钮

我尝试过使用以下解决方法,但没有任何效果

if(!window.history.next){
    $scope.abcService.enableForwardButton = false;
}
即使我没有任何页面可以进一步浏览,这个
if
条件也永远不会得到满足

var index = window.history.length;
if(window.history[index] != window.location)
{
    $scope.abcService.enableForwardButton = true;
}
任何输入都会有帮助。
注意:禁用按钮是应用程序的强制性要求

我相信这应该适合您

if(typeof window.history.forward!=='function'){
  $scope.abcService.enableForwardButton = false;
}

当您可以向前导航时,则type of window.history.forward为“function”,当您不能向前导航时,则为“undefined”

$location服务可能对您有用$位置#状态


此外,我不确定它与angular的兼容性如何,但您可能想看看

您应该使用$window服务,而不是直接使用window.forward,除非您在单击任何其他内容之前单击了back。因此,在每个导航上禁用forward,只有在短的setTimeout上执行back命令后才能解锁。我可以在单击back按钮时启用forward按钮,但我更关心的是如何确定它的最后一页,然后在没有更多页面可供进一步浏览时禁用forward按钮。如果使用angular,获取$state.current.name并在if块下禁用,if($state.current.name=='lastPage'){toDo()}如果用户从其他网页访问您的页面怎么办?然后,他将在window.history中保存该记录,当他单击后退按钮时,他将离开您的应用程序。这是你想要的行为吗?