使用pushState时如何"browser back"?
How to "browser back" when using pushState?
我有这个代码:
window.history.pushState(newUrl, "", newUrl);
我的问题是,如何确保在执行 pushState 时,浏览器后退按钮将正常运行,或者换句话说应该 "back"?
(不使用 jQUery)
push 用于推送... 添加
你应该去 history.back()
如果你想 popState - 在 window 上发出 popstate
事件或做 history.replaceState()
如果您想取消评论活动:
我的回答会成功
后退按钮的正常行为是让浏览器返回到上一个文档,但是当您使用 pushState
时,没有 上一个文档文件.
pushState
的要点是在更新 URL 时保持浏览器在 相同 文档上。这伴随着 DOM 应用 JavaScript 的变化。
它是模拟进入新页面。
要使后退按钮正常工作,您需要编写一个匹配的转到上一页的模拟。
您可以通过侦听 a popstate
event.
来完成此操作
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>
我有这个代码:
window.history.pushState(newUrl, "", newUrl);
我的问题是,如何确保在执行 pushState 时,浏览器后退按钮将正常运行,或者换句话说应该 "back"?
(不使用 jQUery)
push 用于推送... 添加
你应该去 history.back()
如果你想 popState - 在 window 上发出 popstate
事件或做 history.replaceState()
如果您想取消评论活动:
我的回答会成功
后退按钮的正常行为是让浏览器返回到上一个文档,但是当您使用 pushState
时,没有 上一个文档文件.
pushState
的要点是在更新 URL 时保持浏览器在 相同 文档上。这伴随着 DOM 应用 JavaScript 的变化。
它是模拟进入新页面。
要使后退按钮正常工作,您需要编写一个匹配的转到上一页的模拟。
您可以通过侦听 a popstate
event.
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>