目前我有一个页面(Ruby on Rails应用程序),我从不想完全重新加载页面。所有链接都是ajax部分页面加载。我使用history.pushState api在用户导航时相应地更改了url。
例如:点击链接" A"我做
history.pushState({}, null, 'a')
但是,在单击浏览器后退按钮时,浏览器实际上正在执行上一页的整页重新加载。 我在popstae上尝试过preventDefault,但仍然没有运气。它重新加载页面以及我的ajax加载。
window.onpopstate = function(e){
e.preventDefault();
//ajax load previous link
}
如何阻止浏览器对后退按钮执行操作并让我的自定义功能代替页面加载?
编辑:我注意到的一个有趣的行为是当我做同样的事情时
history.pushState({}, null, 'a')
在一个简单的html页面上,单击“返回”按钮并不会实际尝试重新加载整个页面。不知道为什么我的网站会出现这种情况。