使用history.pushState后检测浏览器后退按钮

SB2*_*055 8 html javascript jquery

我有一个三阶段登录表单,在进行进度时显示/隐藏页面上的内容.当用户从步骤1进入步骤2时,我调用以下内容:

var stateObj = { foo: "bar" };
history.pushState(stateObj, "", "");
Run Code Online (Sandbox Code Playgroud)

我看到浏览器后退按钮启用.

现在,我正试图抓住后退按钮点击,这样我就可以隐藏/显示内容(例如 - 回到第1阶段).

如何在此方案中检测浏览器后退按钮?我不希望URL改变,我只想在用户回击时调用一些JS函数.我的目标是现代桌面/移动浏览器.

big*_*ind 11

您可以使用该onpopstate活动.

window.onpopstate = function(event) {
  alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
};
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅有关onpopstate事件的MDN页面.

  • 根据文档,每当pushstate在同一文档中的两个状态之间发生变化时,就会触发事件.后退按钮和前进按钮的状态发生变化,因此这对两者都有效. (2认同)