1

Я хотел бы использовать дополнительную кнопку мыши Logitech в веб-контексте.

Я нахожусь на Ubuntu (но есть другие вещи в других ОС), и я могу связать эти кнопки с действиями ОС. -> Ответ для: Правый клик по событию Javascript?

Я хотел бы слушать эти кнопки в JavaScript, как обычные кнопки:

element.addEventListener(function(evt){
  switch(evt.which){
    case 1: //left click
    case 2: //middle click
    case 3: //right click
    case XX: //other buttons clicks
  }
}

https://stackoverflow.com/a/2405857/1064270

Единственное решение, которое я вижу, - это расширение браузера и собственная передача сообщений , по крайней мере, в Chrome.

Поэтому я ищу более быстрый путь!

1 ответ1

1

Прежде всего, это вопрос, который, вероятно, должен быть связан со стековым потоком, а не здесь.

Но я отвечу на вопрос, потому что он всплыл в Google, когда я искал что-то подобное, так что другие могут удивиться.

Существует стандартная спецификация для обнаружения до двух дополнительных кнопок мыши (кроме левой, средней (колесо), правой).

Проблема заключается в том, что он еще не реализован ни одним браузером, возможно, потому, что это может иметь последствия для "ловушки" мошенников.

В объекте event который передается вашему обработчику, есть свойство .buttons , представляющее собой битовую карту нажатия кнопок (для нескольких кнопок одновременно).

document.addEventListener('mousedown', function(ev) {
  console.log('MB1', ev.buttons & 1) // 1 if clicked, 0 if not
  console.log('MB2', ev.buttons & 2)
  console.log('MB3', ev.buttons & 4)
  console.log('MB4', ev.buttons & 8) // usually browser-back
  console.log('MB5', ev.buttons & 16)// usually browser-forward
})

Последние два не будут зарегистрированы ни в одном браузере сегодня, и вы не можете переопределить события возврата назад и браузера, поэтому он изменит страницу, если вы нажмете эти кнопки (если они настроены на такое поведение).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .