Skip to content

Chromium 기반 브라우저 버그

Chromium 기반 브라우저 버그

크로미움 기반 브라우저(크롬, 오페라) 버그!

Section titled “크로미움 기반 브라우저(크롬, 오페라) 버그!”

최근 사이드 프로젝트를 하면서 nestjs를 써보고 싶어서, ios개발하는 친구와 채팅을 만들어보기로했다.

서버개발 속도가 좀 빨라서 react+ts로 스타일코드는 1개도 없이 기능만 구현해봤다.

채팅은 문자를 입력하고 엔터를 누르는게 기본 기능인데, 그것을 구현하다가 발견한 버그이다.

react에서 키보드입력을 감지하는 이벤트 => onKeyPress

맥에서는 한글입력하면 제일 마지막글자가 블럭쌓인것처럼 검은 밑줄?같은게 쳐지는데,

이상태에서 엔터를 눌러서 onKeyPress 에 바인딩된 함수를 호출하면

해당 마지막글자가, 한번 더 전달된다.

예를들어, ‘ㅁㄴㅇㄹ’을 쓰고 엔터를 누르면 [ㅁㄴㅇㄹ, ㄹ] 이렇게 전송된다.

띠용???????

그런데 onkeydown을 쓰면 문제없다. 근데 deprecated 됐다.

결국 저런 경우 때문에라도, onkeypress를 쓰되, setTimeout같은걸로 연속입력을 빠르게 못하도록 컨트롤하는 방법을 써야함. 뭐 어차피 해야하는 작업이었지만..