我有一个site,它使用带有pushState()方法的ajax导航和onpopstate()处理程序。
首次访问主页时,我显示默认内容(不带ajax)。
当某人导航离开默认页面然后“返回”时,当他们应该返回默认页面时会提供空状态。因此,它们保留在网站的第二页而不是第一页(尽管处理程序可以轻松地使用ajax来恢复初始内容)。
我解决此问题的唯一方法是在初始页面加载时执行pushState,并提供有关初始内容的信息。使用这种方法,“后退”按钮效果很好!
但如果有人在访问my site之前访问www.stackoverflow.com,则会“返回”到stackoverflow,然后再“转发”到我的网站,显示初始内容,然后重新加载,因为“弹出”状态不为空。
我可以在onPopState()处理程序中判断用户是向后还是向前?
答案 0 :(得分:0)
我在Firefox中使用pageshow事件通过前进和后退按钮捕获初始进入网站时取得了一些成功。
答案 1 :(得分:0)
可以window.onPopState()事件处理程序知道导航方向吗? (前进,后退)
有一个问题。您可以跳过状态(按住后退按钮,选择所需的状态)。这让人难以置信。
当某人导航离开默认页面然后“返回”时,当他们应该返回默认页面时会提供空状态。因此,它们保留在网站的第二页而不是第一页(尽管处理程序可以轻松地使用ajax来恢复初始内容)。
您可以使用History.js修复该问题,并使用可选的数据持久性。