我正在开发一个网络应用程序。我写了一些 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/