2016-12-26 7 views
0

에 맥 OS 길게 누르 키 팝업을 감지 : 사진에내가 선택을위한 팝업 키를 때 텍스트 영역에 밖으로 감지 할 필요가 텍스트 영역

enter image description here

이 사람은 분명합니다.

나의 현재 발견은 내가 피들 다운에서했던 것처럼 이벤트를 등록하는 것이 팝업이 열릴 때 뭔가 특별한 것을 찾는 것을 돕지 않는다는 것이다.

왜 팝업을 감지해야합니까? 나는 어떤 이벤트가 e.preventDefault()e.stopImmediatePropagation()을 호출하는 keydown에 등록되어 있기 때문에. 예를 들어 파이어 폭스에서 이런 종류의 이벤트 처리는 팝업이 완전히 작동하지 못하도록하므로 팝업이 열리면 내 짝수 처리기를 비활성화해야합니다.

var txt = document.getElementById('test'); 
 

 
txt.addEventListener('compositionupdate', console.log); 
 
txt.addEventListener('compositionstart', console.log); 
 
txt.addEventListener('compositionend', console.log); 
 
txt.addEventListener('input', console.log); 
 
txt.addEventListener('keyup', console.log); 
 
txt.addEventListener('keydown', console.log); 
 
txt.addEventListener('keypress', console.log);
<textarea id="test" ></textarea>

+0

해결 되나요? http://stackoverflow.com/q/6139225 –

+1

아니요. 나는 길가 프레스를 감지하고 싶지 않다. 팝업이 자바 스크립트로 감지되는지 이해하고 싶다. – AndreaBogazzi

+0

운영체제에 따라 JS에서 감지 할 수 없다고 생각합니다. –

답변

0

몇 달 후, 나는 그것을 처리하는 방법을 깨달았다.

이것은 주로 fabricjs에서이 팝업의 사용을 감지하는 것이 었습니다. 나는 keyup과 keydown으로 게임을 멈추고 모든 것을 oninput 이벤트에 위임했다. 이제 모든 oninput 이벤트가 발생하면 텍스트 영역의 내용을 텍스트 var과 비교하고 전후의 커서 위치를 확인하여 변경 사항을 감지합니다.

꽤 잘 작동하지만 팝업이 감지되지 않습니다.