Jquery 使用参数更新URL时Pjax后退按钮不工作
当我使用一些参数(如?page=2)手动更新url时,pjax将无法识别它:Jquery 使用参数更新URL时Pjax后退按钮不工作,jquery,pjax,Jquery,Pjax,当我使用一些参数(如?page=2)手动更新url时,pjax将无法识别它: window.history.replaceState(null,document.title,"?page=2"); 我也尝试过使用pjax $.pjax({url: "?page=2", container: (container || '#null'), replace: true, dontRequest: true}) (注意,我添加了dontRequest参数,因此我可以执行一个“伪”pjax调用,该调
window.history.replaceState(null,document.title,"?page=2");
我也尝试过使用pjax
$.pjax({url: "?page=2", container: (container || '#null'), replace: true, dontRequest: true})
(注意,我添加了dontRequest参数,因此我可以执行一个“伪”pjax调用,该调用实际上不会触发.ajax,但仍然会更新url,但没有成功)
要在实时站点上复制此功能,请执行以下操作:
注意,什么也没发生。。。现在再按一次,你就会看到它工作了。这是因为我使用replaceState将URL更新为?p=2。我将如何使这项工作,使它认识到这些?参数。。。我试图定制pjax,但没有成功。在我看来,pjax只添加了路径,而没有向状态添加完整的url。这就是为什么你会遇到这个问题 如果您使用的是Rails,那么一定要尝试Wiselinks。这是一把用于浏览器状态管理的瑞士军刀。以下是一些详细信息:
Wiselinks可以更好地处理这一问题和其他许多情况。这是一个老问题,但我会为碰巧来到这里的任何人提供答案,就像我一样 在页面上手动使用pushState或replaceState时,Pjax无法完美工作。当它遇到这种状态时,它什么也不做。所以,当您按后退/前进按钮进入这样一个页面时,pjax:popstate事件不会触发,也不会发生任何事情 解决方法是使用$.pjax.state作为pushState和replaceState的状态对象参数
history.pushState($.pjax.state, null, href)
及
github中存在一些与此问题相关的问题:
,
history.replaceState($.pjax.state, null, href)