어제자로 클리앙 단축키가 keydown에서 keyup으로 바뀌었는데,
keyup은 오직 키를 떼는 것만 체크하다보니, 키를 누른 상태에서 다른 탭에서 그 키를 뗄 경우 단축키가 작동해버린다는 문제가 있습니다.
그래서 많이들 사용하는 단축키인 탭 닫기(ctrl+w) 단축키를 사용했을 경우,
그 다음에 보이는 창이 클리앙이라면 w 단축키(회원중고장터 이동)가 작동해 버리는 문제가 생겼네요.
(단축키 사용 후 ctrl을 먼저 떼는 사용자가 있기 때문에... w 키의 단독적인 keyup 이벤트 발생)
keydown 이벤트에 마지막으로 눌린 key를 기억하게 하고,
keyup 이벤트에서 마지막으로 눌린 key와 같은지 확인하는 절차를 거친 후, 일치할때만 단축키가 작동하도록 하는게 어떨까요?
여러가지 방법으로 확인해 보았는데, 문제해결 방안에 대해 아직 결론을 내리지 못하였습니다.
@Myayu님이 제안한 방안도 참고하여 검토 및 확인 후 개선하겠습니다.
이용에 불편을 드려 죄송합니다.
keyup이벤트에서 마지막 keydown과 일치하는지 체크한 후 일치 여부와 관계없이,
무조건 마지막으로 눌린 keydown값은 지우도록 하는게 좋을 것 같네요.
이렇게 하지 않으면 ctrl+c(ctrl과 c 순서로)를 누른 상태에서 ctrl을 먼저 떼고 나중에 c를 떼게되면, 마지막 keydown 값은 여전히 c라서 c가 인식되지만,
keyup 이벤트마다 무조건 마지막 keydown값을 삭제한다면, 순차적으로 눌린 키의 마지막 키가 단독키로 인식되는 문제도 피할 수 있으니까요.
https://www.clien.net/service/board/annonce/14939208CLIEN