Słuchaj dodatkowych przycisków myszy w przeglądarce

1

Chciałbym użyć dodatkowego przycisku myszy Logitech w kontekście sieciowym.

Jestem na Ubuntu (ale w innych systemach operacyjnych są podobne rzeczy) i mogę powiązać te przyciski z działaniami systemu operacyjnego. -> Odpowiedź na: Czy kliknięcie prawym przyciskiem myszy zdarzenia JavaScript?

Chciałbym słuchać tych przycisków w javascript, takich jak normalne przyciski:

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

Jedyne rozwiązanie, jakie widzę, to rozszerzenie przeglądarki i przekazywanie wiadomości natywnych , przynajmniej w Chrome.

Więc szukam szybszej ścieżki!

Gael
źródło

Odpowiedzi:

1

Przede wszystkim jest to pytanie, które prawdopodobnie powinno dotyczyć przepływu stosu, a nie tutaj.

Ale odpowiem na pytanie, ponieważ pojawiło się w google, gdy szukałem czegoś podobnego, aby inni mogli się zastanawiać.

Istnieje standardowa specyfikacja wykrywania do dwóch dodatkowych przycisków myszy (oprócz lewego, środkowego (kółka), prawego).

Problem polega na tym, że nie jest jeszcze zaimplementowany przez żadną przeglądarkę, prawdopodobnie dlatego, że może mieć to wpływ na „pułapki” oszustwa.

W eventobiekcie przekazywanym do programu obsługi znajduje się .buttonswłaściwość, która jest mapą bitową tego, które przyciski są wciskane (dla wielu przycisków jednocześnie).

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
})

Dwa ostatnie nie zarejestrują się dzisiaj w żadnej przeglądarce i nie można przesłonić zdarzeń wstecz i do przodu przeglądarki, więc zmieni stronę, jeśli klikniesz te przyciski (jeśli są ustawione na takie zachowanie).

Tor Valamo
źródło