Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 回到';开始';使用历史api_Javascript_History.js - Fatal编程技术网

Javascript 回到';开始';使用历史api

Javascript 回到';开始';使用历史api,javascript,history.js,Javascript,History.js,假设我的历史记录中有一个任意点(有人在我的页面上登陆的点),我想在某些状态执行某些操作时推动它们,然后当它们完成时,我想返回到它们在页面上登陆时的历史点。所以,如果他们按下前进键,他们会再次开始动作,如果他们按下后退键,他们会回到他们登陆我的页面之前的任何地方 现在的问题是,当我推动状态,然后在某一点上,它们会后退。例如 登录页 推送状态1 推送状态2 背 现在,如果我想将它们返回到登录页,我只需要返回一次(而不是两次)。如何计算使用javascript将它们发送回的距离?似乎history

假设我的历史记录中有一个任意点(有人在我的页面上登陆的点),我想在某些状态执行某些操作时推动它们,然后当它们完成时,我想返回到它们在页面上登陆时的历史点。所以,如果他们按下前进键,他们会再次开始动作,如果他们按下后退键,他们会回到他们登陆我的页面之前的任何地方

现在的问题是,当我推动状态,然后在某一点上,它们会后退。例如

  • 登录页
  • 推送状态1
  • 推送状态2
现在,如果我想将它们返回到登录页,我只需要返回一次(而不是两次)。如何计算使用javascript将它们发送回的距离?似乎history.length非常不一致,使用history.js保存的状态不起作用,因为无论我使用的是push state还是单击back,状态都会被添加到其中


非常感谢您的帮助。

如果您想转到特定的url,只需使用
window.location.replace(url)
重定向到特定的url即可

在您的情况下,在所有页面加载上,递增会话变量中保留的计数器,以便在回发之间不会丢失计数器,并使用它
window.history.go(-count)
返回

供进一步阅读-

仅仅重定向到url根本无法实现我的目标,如果我可以重定向页面,我就不会使用历史api。我的全部问题都是问当我使用后退按钮时,我是如何得到这个计数的。你仔细阅读了我的问题了吗?再说一次,当他们使用后退按钮时,你如何校正计数。如果我保持页面浏览量的计数,当他们单击后退时,我需要从该计数中删除一个。在我的问题中,我已经给出了一个例子(现在编辑以使其更清晰)@rbhalla这里需要的是服务器上的会话对象来存储状态。您还可以查看各种客户端存储选项。