Как заставить кнопки мыши 4/5 (браузер назад / браузер вперед) работать в Firefox? - PullRequest
1 голос
/ 28 марта 2020

Во-первых, я должен сказать, что я знаю, что существует некоторая путаница относительно того, какое соглашение о схеме нумерации кнопок используется для этих кнопок мыши «Браузер назад» и «Браузер вперед» в зависимости от того, используете ли вы нумерацию, начиная с нуля 0 или один 1. Поскольку этот вопрос о Firefox, я буду go по Схема нумерации Mozilla здесь .

Я боролся с проблемой, замеченной только в Firefox, где кнопки мыши 4 (назад) и 5 ​​(вперед) отображаются как Firefox, как если бы они были событием нажатия кнопки 2 (нажатие средней кнопки). Нажатие любой кнопки 4 или 5 приводит к появлению круглого значка «автопрокрутки» с появлением стрелок вверх и вниз:

Firefox autoscroll icon

Я провел некоторую отладку, используя этот тест событий мыши Page . Результаты различаются между Chrome и Firefox. Похоже, что атрибут "which" JS нумерует их как 4 и 5, а атрибут button нумерует их как 3 и 4. Несмотря на это, 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

...