브라우저에서 마우스 추가 버튼 듣기

브라우저에서 마우스 추가 버튼 듣기

웹 컨텍스트에서 Logitech 마우스의 추가 버튼을 사용하고 싶습니다.

저는 Ubuntu를 사용하고 있으며(다른 OS에도 비슷한 것이 있습니다) 이러한 버튼을 OS 작업과 바인딩할 수 있습니다. ->답변: 마우스 오른쪽 버튼 클릭이 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에 팝업이 나타나서 다른 사람들이 궁금해할 수도 있기 때문에 질문에 대답하겠습니다.

최대 2개의 추가 마우스 버튼(왼쪽, 가운데(휠), 오른쪽 제외)을 감지하는 표준 사양이 있습니다.

문제는 아직 어떤 브라우저에서도 구현되지 않았다는 것입니다. 아마도 사기 "트랩핑"에 영향을 미칠 수 있기 때문일 것입니다.

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

마지막 두 개는 현재 어떤 브라우저에도 등록되지 않으며 브라우저 뒤로 및 브라우저 앞으로 이벤트를 무시할 수 없으므로 해당 버튼을 클릭하면 페이지가 변경됩니다(해당 동작으로 설정된 경우).

관련 정보