Achten Sie im Browser auf zusätzliche Maustasten

Achten Sie im Browser auf zusätzliche Maustasten

Ich möchte die zusätzliche Taste meiner Logitech-Maus in einem Webkontext verwenden.

Ich verwende Ubuntu (aber es gibt ähnliche Dinge in anderen Betriebssystemen) und ich kann diese Schaltflächen mit Betriebssystemaktionen verknüpfen. ->Antwort auf: Ist Rechtsklick ein Javascript-Ereignis?

Ich möchte auf diese Schaltflächen in Javascript warten, wie auf normale Schaltflächen:

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

Die einzige Lösung, die ich sehe, ist eine Browsererweiterung undnative Nachrichtenübermittlung, zumindest auf Chrome.

Also suche ich nach einem schnelleren Weg!

Antwort1

Erstens ist dies eine Frage, die wahrscheinlich eher auf Stackoverflow als hier gestellt werden sollte.

Aber ich beantworte die Frage, weil sie bei Google aufgetaucht ist, als ich nach etwas Ähnlichem gesucht habe, also könnten sich auch andere darüber Gedanken machen.

Es gibt eine Standardspezifikation zum Erkennen von bis zu zwei zusätzlichen Maustasten (zusätzlich zur linken, mittleren (Rad) und rechten Maustaste).

Das Problem besteht darin, dass es noch in keinem Browser implementiert ist, wahrscheinlich weil es Auswirkungen auf die Erkennung von Betrugsversuchen haben könnte.

In dem eventObjekt, das an Ihren Handler übergeben wird, gibt es eine .buttonsEigenschaft, die eine Bitmap der gedrückten Tasten ist (für mehrere Tasten gleichzeitig).

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

Die letzten beiden werden heute in keinem Browser registriert und Sie können die Browser-Zurück- und Browser-Vorwärts-Ereignisse nicht überschreiben, sodass die Seite geändert wird, wenn Sie auf diese Schaltflächen klicken (sofern sie auf dieses Verhalten eingestellt sind).

verwandte Informationen