我的网站可以很好地处理ajax加载的所有页面,并使用pushState和history.js存储这些页面的历史记录条目。
当我在站点中时,statechange事件处理程序可以很好地工作,允许我正确地使用ajax功能在我访问的页面之间来回导航。
这种情况在Chrome或Firefox中不起作用(但在IE和Edge中可以正常使用):
从www.someothersite.com开始
导航到www.mysite.com/blog
点击游戏链接,ajax正常运行,我在www.mysite.com/games
再按一次即可,我在www.mysite.com/blog
如果我再按一次,我将返回www.someothersite.com
我向前按,然后回到www.mysite.com/blog(太好了!)
但是当我再次按前进时,页面会完全刷新,尽管我是我想去的地方(www.mysite.com/games),但ajax无法正常工作。
如果我从此处单击站点上的链接,则ajax可以正常运行,但浏览从站点上原始位置创建的历史记录将始终使页面在Firefox和Chrome中完全刷新(尽管行为如此)完全可以在IE和Edge中使用。
据我所知(在Chrome和Firefox中),当我离开站点浏览并返回时,当我向后或向前浏览站点的旧状态时,popstate事件没有触发返回。如果我一旦回到就创建了新状态,则它们可以正常工作,但是旧状态仍然无法工作
我在Firefox和Chrome中注意到的另一个区别是,它们在重定向到www.mysite.com/blog之前存储了www.mysite.com的历史记录条目,我想知道这是否可能与之相关?