Я хотел бы использовать дополнительную кнопку моей мыши 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
Прежде всего, этот вопрос, вероятно, следует задать на StackOverflow, а не здесь.
Но я отвечу на вопрос, потому что он всплыл в 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
})
Последние две кнопки сегодня не регистрируются ни в одном браузере, и вы не можете переопределить события браузера назад и браузера вперед, поэтому при нажатии этих кнопок страница изменится (если для них установлено такое поведение).