防止鼠标后退/前进按钮[重复]

Posted

技术标签:

【中文标题】防止鼠标后退/前进按钮[重复]【英文标题】:Preventing Mouse Back/Forward Buttons [duplicate] 【发布时间】:2019-01-29 22:41:18 【问题描述】:

上下文:感谢 GWT,我们在 JS/html 中部署了沉浸式游戏。用户抱怨在玩游戏时不小心按下了后退/前进鼠标按钮,导致他们在操作过程中无意离开页面。我们希望阻止这些鼠标按钮的默认操作,或者想出一些解决方案(通常会令人讨厌和侵入),通过弹出窗口提醒/警告用户,如果他们点击 OK,他们将要离开游戏.

问题:如何防止Mouse Button 3 (typically Browser Back button) and Mouse Button 4 (typically Browser Froward Button)在整个网页中的默认操作?

潜在的解决方案:我看到了一个类似的解决方案,其中涉及 'mousedown'(ref) 和 'mouseup'('mouseup'(ref) 的 addEventListener 以及随后调用触发 event.preventDefault 的函数() 和 event.stopPropagation() 也许,但我没有看到类似的鼠标后退和前进功能。还尝试了this 之类的方法,但无济于事(我是 JS 菜鸟)。

【问题讨论】:

你不应该开始玩弄特定的输入设备行为。使用onbeforeunload 离开网站时的一般警告应该足以涵盖所有可能的离开网站的方式。 This 已经回答了您的问题。 TLDR:出于安全原因,客户端脚本没有足够的权限来执行此操作。禁用后退按钮不起作用的原因有很多。 【参考方案1】:

你可以考虑处理Beforeunload事件。

这是为了离开页面而触发的(例如,当单击返回按钮时 - 但它也会处理刷新等)

【讨论】:

以上是关于防止鼠标后退/前进按钮[重复]的主要内容,如果未能解决你的问题,请参考以下文章

HTML代码片段

HTML代码片段

JS禁用浏览器前进后退

在Edge里鼠标滚轮一动,页面就前进或后退了。怎样取消这个功能?

.net mvc如何防止用户后退,现在保存订单后能回到订单页面重复提交,如何能防止后退

js防止浏览器后退(键盘鼠标手势)