如何在Firefox中使鼠标按钮4/5(浏览器后退/浏览器前进)正常工作?

40
首先,我需要说明的是,关于这些“浏览器后退”和“浏览器前进”鼠标按钮使用哪种按键编号方案的惯例存在一些混淆,具体取决于您是否从零开始编号0或从一开始编号1。由于这个问题涉及到Firefox,我将遵循Mozilla在这里的编号方案

我一直在处理一个只在Firefox中出现的问题,即鼠标按钮4(后退)和5(前进)似乎向Firefox显示为按钮2单击(中间按钮单击)事件。按下任一按钮4或5会导致出现带有上箭头和下箭头的圆形“自动滚动”图标:

Firefox autoscroll icon

我使用此鼠标事件测试页面进行了一些调试。 Chrome和Firefox之间的结果不同。它看起来“which”JS事件属性将其编号为45,而“button”属性将其编号为34。无论如何,Google Chrome正确地将它们解释为“浏览器后退”和“浏览器前进”按钮,而Firefox则没有。

  • Chrome:

    • 鼠标按钮“4”(返回)

      mousedown   which=4 button=3 buttons=8
      mouseup     which=4 button=3 buttons=0
      
    • 鼠标按键 "5"(前进)

    • mousedown   which=5 button=4 buttons=16
      mouseup     which=5 button=4 buttons=0
      
    • 鼠标按键 "2" (中键)

    • mousedown   which=2 button=1 buttons=4
      mouseup     which=2 button=1 buttons=0
      
  • Firefox:

    • 鼠标按键 "4"(后退)

  • mousedown   which=2 button=1 buttons=8
    mouseup     which=2 button=1 buttons=0
    
  • 鼠标按键 "5"(前进)

  • mousedown   which=2 button=1 buttons=16
    mouseup     which=2 button=1 buttons=0
    
  • 鼠标按键 "2" (中键点击)

  • mousedown   which=2 button=1 buttons=4
    mouseup     which=2 button=1 buttons=0
    

正如该页面所述,并非所有浏览器都能正常工作。它还指出:

但是,在某些浏览器中,无法禁用默认值,因此可能会发生各种奇怪的副作用。

在Firefox中,我注意到使用这三个按钮之一点击时,会启动一个带有javascript:void(null)的新标签页。从该页面的源代码可以看到,这与链接的URL属性(href="javascript:void(null)")相同。因此,这种行为与中间按钮单击事件一致,通常会在新标签页中打开该URL。

是否有可能在Firefox中使“浏览器后退”和“浏览器前进”这些按钮正常工作?


7
我在 Mac 上使用非 Apple 鼠标时遇到同样的问题。Chrome 可以使用鼠标的前进和后退按钮,但 Firefox 不行。然而,在 Linux 中使用该鼠标一切正常。真令人沮丧! - Michael
1
在Firefox Mac上使用Logitech MX Master蓝牙连接时遇到了此问题。实际上,它似乎激活了中键单击功能。 - Phil Ricketts
1
@TrinitronX,现在在Firefox中它基本上对我有效,尽管偶尔会再次停止工作,然后我只能使用中键操作,就像你所描述的那样。我有时也会遇到MX Master的指针减速问题,但我安装了“USB Overdrive” prefpane来增加轮询率,作为一种绝望的尝试来修复它。相关:当我听蓝牙耳机时,我的鼠标偶尔会变得卡顿。奇怪的是,打开“USB Overdrive” prefpane可以解决这个问题,这让我相信这是某种Mac蓝牙bug。此外,我有两个MX Masters都有同样的问题。 - Phil Ricketts
我在macOS上使用FF时遇到了完全相同的问题。我的鼠标没有额外的软件/驱动程序,只是一个基本的无线鼠标。有人解决了这个问题吗?我很震惊FF会有这样的bug。在Chrome上运行良好。 - skainswo
正如这个答案所描述的那样,该漏洞现已修复。案件结案。 - Tino
显示剩余2条评论
5个回答

14
我可以推荐 SensibleSideButtons 项目。它易于安装,而且还可以修复其他程序中的鼠标按钮问题。

1
这个可以解决问题!不仅适用于罗技鼠标。 - Jupeter
SensibleSideButtons 会干扰像 VSCode 这样的应用程序。 - simou
没有在VSCode中尝试过。但我正在使用Jetbrains PHPStorm工作,可以说没有这样的问题。但是知道在VSCode中有问题是很好的。也许你可以查看此项目的github问题 - Fabian Schmick

9

好消息:Firefox 92中的Bug已修复

这个错误已经被修复,并且修复将包含在Firefox 92版本中,该版本将于2021年9月初发布

在当前的夜间构建(版本92)中,它已经可以正常工作了,您可以使用鼠标按钮4和5进行浏览器导航返回和前进操作。
我在MacOS和普通的Dell鼠标上进行了测试。


更新(2021年9月7日)

如早前所述,Firefox 92今天已发布,鼠标按钮4和5运行良好。
问题已解决。


太好了!迫不及待地想要解决这个bug! - TrinitronX
尝试了Nightly版本,并确认已经修复。 - Jayden Lawson
2
Firefox 92已于2021年9月9日在Ubuntu 20.04 LTS仓库中发布!我可以确认,这个问题已经在Linux和MacOS上修复,适用于Logitech MX Master 2S和MX Master 3鼠标! - TrinitronX
Firefox 92.0.1发布版本已确认。 - Sri Harsha Chilakapati

7

我也遇到了同样的问题。

系统信息

  • macOS 10.15.5
  • Firefox 83.0
  • Logitech MX Master 2S无线鼠标

重现步骤

  • 打开Firefox。
  • 导航到页面。
  • 点击后退按钮,再点击前进按钮。

解决方法

  • 安装Logitech Options for macOS
  • 打开应用程序。
  • 允许应用程序控制您的计算机: 系统偏好设置 > 安全性与隐私 > 辅助功能 > 勾选 Logi OptionsLogi Options Daemon

原来就是这样!然而,现在似乎有一些额外的步骤。我必须将“Logi Options Daemon”添加到“辅助功能”、“输入监控”和“屏幕录制”中。其中一些缺少了要勾选的“Logi”项目,因此我通过单击“+”图标并导航到以下位置手动添加它们:/Library/Application Support/Logitech/Logitech Options/Logi Options Daemon/Applications/Logi Options - TrinitronX
在进行一些实验后,还有一个重要的注意事项:在我尝试删除并重新添加“Logi Options Daemon”以进行测试之后,后退/前进和鼠标滚轮按钮再次停止工作。唯一解决问题的方法是完全卸载、重新启动、重新安装、重新启动,最后进入每个“系统偏好设置>安全性与隐私”部分,取消选中并重新选中每个“Logi*”项目! 在提示重新启动每个程序时,请执行此操作!不知何故,这些设置一直处于非操作状态,直到进行了最后一步! - TrinitronX
不幸的是,这个解决方案对于有线鼠标不起作用,因为“Logitech Options”需要一个USB dongle...而我有一个M500s(M-U0007).... :-( - AlexD

1

我在使用Logitech MX Master 3 / MacOS 10.15.7 / Firefox 81.0.2时遇到了相同的问题,即前进/后退按钮突然停止工作,原因不明。NVRAM / PRAM重置解决了我的问题!


2
不幸的是,这对我没有起作用,在火狐浏览器中仍然存在同样的问题。 - Fabian Schmick

1

这不是特定厂商的问题。任何多按键鼠标都可能受到影响。
解决方案: karabiner-elements。安装说明在网站上。否则,对于brew用户来说,只需简单执行以下操作:

brew install karabiner-elements

打开Karabiner-Elements并赋予它所需的所有权限。在程序界面中导航到“设备”,并在鼠标设备旁边的粗框中打上一个标记。转到“复杂修改”,然后单击“规则”->“添加规则”->“从互联网导入更多规则”。在新打开的浏览器窗口中搜索“更改鼠标按钮(rev 2)”,然后按下大蓝色的“导入”按钮。成功导入后,请确保启用最适合您的组合。对于罗技MX Master(原始版本,其中下侧按钮是后退按钮,上侧按钮是前进按钮),要启用的配置文件是“将button4、5更改为后退和前进”。作为额外的奖励,您可以获得Karabiner几乎无尽的组合和重新映射能力。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接