Javascript 如何";“浏览器后退”;当使用pushState时?

Javascript 如何";“浏览器后退”;当使用pushState时?,javascript,pushstate,Javascript,Pushstate,我有以下代码: window.history.pushState(newUrl, "", newUrl); 我的问题是,如何确保在执行pushState操作时,浏览器后退按钮将正常工作,或者换句话说,应该返回“后退” (不使用jQUery)推送用于推送。。。添加 您应该转到history.back() 如果要在窗口上发出popState事件,或执行历史记录.replaceState() 如果要取消已评论事件: 我的回答就行了 后退按钮的正常行为是浏览器返回到上一个文档,但是当您使用push

我有以下代码:

window.history.pushState(newUrl, "", newUrl);
我的问题是,如何确保在执行pushState操作时,浏览器后退按钮将正常工作,或者换句话说,应该返回“后退”


(不使用jQUery)

推送用于推送。。。添加


您应该转到
history.back()

如果要在窗口上发出popState事件,或执行历史记录.replaceState()


如果要取消已评论事件: 我的回答就行了

后退按钮的正常行为是浏览器返回到上一个文档,但是当您使用
pushState
时,没有上一个文档

pushState
的要点是在更新URL时保持浏览器在同一文档上。这伴随着使用JavaScript应用的DOM更改

这是一种进入新页面的模拟

要使“后退”按钮看起来正常工作,您需要编写一个与转到上一页相匹配的模拟

你可以通过倾听来做到这一点

第1页
下一个
document.querySelector(“按钮”).addEventListener(“单击”),函数(){
document.getElementById('p').textContent++;
history.pushState({},“,”/“+document.getElementById('p').textContent);
});
addEventListener(“popstate”,函数(e){
document.getElementById('p').textContent--;
e、 预防默认值();
});

你是什么意思?为什么它不能正常工作?或者你的意思是你想使用?不,我的意思是当用户按下后退按钮时,它不会返回到上一个page@xybrek如果用户按下浏览器返回按钮,为什么它不返回?你的浏览器有缺陷吗?@黑色-因为他们正在使用pushState!不,我的意思是当用户按下后退按钮时,它不会返回到上一页
Page <span id="p">1</span>

<button>Next</button>

<script>
document.querySelector("button").addEventListener("click", function () {
  document.getElementById('p').textContent++;
  history.pushState({}, "", "/" + document.getElementById('p').textContent);
});

addEventListener("popstate", function (e) {
  document.getElementById('p').textContent--;
  e.preventDefault();
});
</script>