我的页面包含一个表单,当用户提交表单时,调用一个JavaScript函数并动态呈现给用户一个新的表单。
此时,我希望用户能够单击浏览器的后退按钮并返回到第一个表单。这可能吗?
谢谢快速响应,但我遇到了使用pushState的问题。在单击后退按钮后,HTML仍然显示“第二个表单”。
以下是我用来测试它的代码:
<script>
function newPage(){
history.pushState({state:1}, "State 1", "?state=1");
document.getElementById('formBox').innerHTML="second form";
}
</script>
<input type="button" onclick="newPage();" value="forward" />
<div id='formBox'>first form</div>
beforeunload
事件。随着浏览器的发展,这应该是正确的答案,因为它使用了原生JavaScript。 - Joseph MariklestateObj
可以包含任何你想要的内容。当你使用history.back()
、history.forward()
或history.go(target)
(其中target
是整数或完整/部分 URL),或者用户使用浏览器的后退按钮时,你可以访问该stateObj
。例如:window.onpopstate = function(event) { alert(JSON.stringify(event.state));
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate - Buttle Butkus