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

标签 javascript jquery html

我有一个三阶段登录表单,可以随着进度显示/隐藏页面上的内容。当用户从第 1 步前进到第 2 步时,我调用以下命令:

var stateObj = { foo: "bar" };
history.pushState(stateObj, "", "");

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

现在,我正在尝试捕捉后退按钮的点击,以便我可以相应地隐藏/显示内容(例如 - 返回到第 1 阶段)。

在这种情况下如何检测浏览器后退按钮?我不想更改 URL,我只想在用户回击时调用一些 JS 函数。我的目标是现代桌面/移动浏览器。

最佳答案

您可以使用 onpopstate 事件。

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

有关详细信息,请参阅 the MDN page about the onpopstate event.

关于javascript - 使用 history.pushState 后检测浏览器后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28256198/

相关文章:

html - 将嵌入的页面内容调整到视口(viewport)

javascript - 将 html 表数据转换为在 javascript 循环中运行

javascript - 重启 Vue 过渡

javascript - 是否可以输入带有变量的背景图像大小?

javascript - 在 CKEditor 内联实例中,如何禁用拖放?

jquery - 按钮和导航在网站的移动版本中关闭

javascript - 从 DER 证书中提取通用名称

javascript - 如何在此 div 的内容中按数字(带小数)排序 div

javascript - 一个类的所有链接 - 如何在点击时添加其他类?

html - 使用 float 并排对齐 div 元素