为了确保,我 NOT 询问如何捕获后退/前进按钮事件。
window.addEventListener('popstate', function (e) {
alert("Yahoooo!!!!");
});
上面的功能被触发是浏览器的后退按钮还是浏览器的前进按钮但我无法检测到点击了哪个?它是后退按钮还是前进按钮?
他们是否有任何特定事件我可以检测到它是“后退”或“前进”按钮?
编辑:虽然我很欣赏“重复问题”的建议,但在 stackoverflow 上here 上发布了类似的问题,但接受的答案是从 2012 年 1 月开始的!!从那时起,很多事情都发生了变化。也许已经有更简单的方法了!
谢谢
我遇到了同样的问题,我使用现代 javascript 找到了答案。
代码可用在GitHub上
您可以使用以下方法检测任何依赖 popstate / pushstate 的 js 应用程序中按下的浏览器后退和前进按钮:
// e.detail.direction will be the "backward" or "forward" String according the pressed button
window.addEventListener('nav::user_asked_history', function(e) {
console.log('nav::direction=', e.detail.direction);
})
您可以使用以下方式显示/隐藏您自己的应用内后退和前进按钮:
is_nav_forward_possible()
is_nav_backward_possible()
您还可以使用浏览您的应用内用户历史记录
let nav_position;
let nav_history;
享受现代 JS 的乐趣!