ASP.NET 2.0 웹 응용 프로그램, 바로 가기 키 조합을 구현하는 방법 Ctrl + Letter, 바람직하게는 JavaScript를 통해 웹 응용 프로그램을 인체 공학적으로 개선 할 수 있습니까? JavaScript를 통해 다중 키 키보드 이벤트를 캡처하는 방법은 무엇입니까?CTRL 또는 SHIFT + <letter>의 단축키 조합을 자바 스크립트를 통해 구현하는 방법은 무엇입니까?
답변
자바 스크립트 Ctrl 키를 + 고도 + 변화 키에 대한 지원을하고있다. 나머지는 알아낼 수 있다고 가정합니다. Link.
이벤트 리스너 함수는 Event 객체를 전달받습니다. 여기에는 "altKey", "ctrlKey", "shiftKey"및 "metaKey"등의 많은 유용한 정보가 있습니다. 해당 이벤트가 발생할 때 수정 자 키가 눌려져 있으면 해당 속성이 true로 설정됩니다.
키보드 및 마우스 이벤트 (onclick 등)에 적용됩니다. onkeydown 이벤트 리스너가있는 경우 수식 키 자체가 이벤트를 발생시킵니다.
window.onkeyup = function(e) {
if (e.altKey) alert("Alt pressed");
if (e.shiftKey) alert("Shift pressed");
}
Firefox 3, Windows XP에서 테스트되었습니다.
나는 이것이 원래 질문에 답하고 있지 않다는 것을 알고 있지만, 여기 나의 충고가있다 : 웹 어플리케이션에서 키 조합 단축키를 사용하지 마라!
왜? 왜냐하면 그것을 늘리는 대신 유용성을 깨뜨릴 수 있기 때문입니다. 일반적으로 "한 키 바로 가기"는 일반 브라우저에서 사용되지 않지만 (오페라는 마지막 주 버전에서 기본 키로 제거함) 다양한 브라우저에서 사용되는 키 조합 바로 가기가 무엇인지 또는 어떤 것이 될지 파악할 수 없습니다 .
방문자가 Firefox 나 Opera와 같이 사용자 정의가 가능한 브라우저를 사용하는 경우 방문자가 자신의 바로 가기를 구성하거나 추가 플러그인을 정의하는 추가 위험 요소가 있습니다.
웹 응용 프로그램은 브라우저에 종속되어 있으므로 가장 좋아하는 브라우저에서 제대로 작동하는 경우 친구의 브라우저에서도 동일한 반응을 보일 것이라고 가정해서는 안됩니다.
짧은 대답은 keydown 이벤트를 캡처하고 해당 이벤트를 사용하여 함수를 실행하는 데 자바 스크립트를 사용한다는 것입니다. 관련 기사 :
- http://www.openjs.com/scripts/events/keyboard_shortcuts/
- http://udayms.wordpress.com/2006/03/17/ajax-key-disabling-using-javascript/
- http://protocolsofmatrix.blogspot.com/2007/09/javascript-keycode-reference-table-for.html
- http://www.quirksmode.org/js/keys.html
당신이 jQuery library를 사용하는 경우, 당신은 크로스의 HotKeys plugin 보면 좋을 것 브라우저 솔루션.
나는 이것이 orginal 한 질문에 대답하지 알고 있지만, 여기 내 조언이다 : 웹 응용 프로그램의 키 조합 바로 가기를 사용하지 마십시오!왜?왜냐하면 그것을 늘리는 대신 유용성을 깨뜨릴 수 있기 때문입니다. 일반적으로 "한 키 바로 가기"는 일반 브라우저에서 사용되지 않지만 (오페라는 마지막 주 버전에서 기본 키로 제거함) 다양한 브라우저에서 사용되는 키 조합 바로 가기가 무엇인지 또는 어떤 것이 될지 파악할 수 없습니다 .
기즈모가 좋은 지적입니다. http://www.clagnut.com/blog/193/에는 일반적으로 사용되는 액세스 키 할당에 대한 몇 가지 정보가 있습니다.
그리고 당신은 Firefox's default Keyboard and Mouse Shortcuts의이 페이지를 찾을 수 있습니다 : 당신이 접근 키를 변경 할 경우
, 여기 잘 수행하는 방법에 대한 좋은 제안을 일부 기사는 유용합니다 (동일 정보의 Another version). Internet Explorer 7 및 Internet Explorer 6에 대한 키보드 단축키 단축키 for Operaand Safari.
더 많은 키보드 단축키를 추가하는 JAWS이나 다른 스크린 리더에서 문제가 발생할 가능성이 큽니다.
확실히 [this] (http://stackoverflow.com/questions/16006583/capturing-ctrlz-key-combination-in-javascript) 도움이 될 것입니다. –