javascript - Chrome 在浏览器后退按钮上再次执行所有 JS

标签 javascript jquery html google-chrome

我正在开发一个网络应用程序。我写了一些 JS 脚本,在准备好文档时执行。但是在 chrome 中,当我们点击后退按钮并返回上一页时,它会再次执行所有的 js 脚本。但是当我在 firefox 上使用它时,它不执行 JS。

我在页面上有一个 Accordion ,当用户打开任何 Accordion 并继续 Accordion 下的链接之一,之后如果再次单击 Accordion 页面上的后退按钮,chrome 将关闭所有 Accordion ,因为我写了准备好文档后关闭所有这些脚本。但是firefox不关闭。

有什么办法可以用 javascript 解决这个问题吗?这样我就可以输入任何条件,例如 if(history.forward.length < 1){ do this....}

最佳答案

您可以使用 pageshow 事件来保证您始终检测到特定页面的导航,无论用户是否按下后退/前进按钮或选择链接,也无论使用的是哪种浏览器。

然后您可以执行有关 UI 状态的检查并根据需要执行逻辑(即修改 UI,防止执行其他 JS)。

window.addEventListener('pageshow', function(event) { //检查 UI 等的状态 });

关于javascript - Chrome 在浏览器后退按钮上再次执行所有 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31004182/

相关文章:

javascript - 如何停止浏览器存储密码值

javascript - 选中/取消选中所有复选框

javascript - jQuery 多 ID 选择器通过变量连接

javascript - 如何在 lookbehind 和 lookahead 之间解析文本

javascript - 通过单击将 css 类附加到多个 div

javascript - 如何从异步调用返回响应?

javascript - QUnit 中的 'Q' 代表什么?

javascript - 使用悬停和 Angular 更改 div 的颜色时出错

javascript - 从 jquery textarea 中按 UP 键向上移动

javascript - 客户端路由。它是如何工作的?