防止鼠标后退/前进按钮[重复]
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事件。
这是为了离开页面而触发的(例如,当单击返回按钮时 - 但它也会处理刷新等)
【讨论】:
以上是关于防止鼠标后退/前进按钮[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在Edge里鼠标滚轮一动,页面就前进或后退了。怎样取消这个功能?