이 코드로 자바 스크립트에서 ctrl+ z키 조합 을 캡처하려고합니다 .
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<script type='text/javascript'>
function KeyPress(e) {
var evtobj = window.event? event : e
//test1 if (evtobj.ctrlKey) alert("Ctrl");
//test2 if (evtobj.keyCode == 122) alert("z");
//test 1 & 2
if (evtobj.keyCode == 122 && evtobj.ctrlKey) alert("Ctrl+z");
}
document.onkeypress = KeyPress;
</script>
</body>
</html>
주석 처리 된 줄 “test1″은 ctrl키를 누른 상태에서 다른 키를 누르면 경고를 생성합니다 .
주석 처리 된 줄 “test2″는 z키를 누르면 경고를 생성합니다 .
“test 1 & 2″뒤의 줄에 따라 이들을 모으고 ctrl키를 누른 상태에서 키를 눌러도 z예상대로 경고가 생성되지 않습니다.
코드에 어떤 문제가 있습니까?
답변
- 사용
onkeydown
(또는onkeyup
), 아님onkeypress
keyCode
122가 아닌 90을 사용하십시오.
온라인 데모 : http://jsfiddle.net/29sVC/
명확히하기 위해 키코 드는 문자 코드와 동일하지 않습니다.
문자 코드는 텍스트 용입니다 (인코딩에 따라 다르지만 많은 경우 0-127이 ASCII 코드로 남아 있음). 키 코드는 키보드의 키에 매핑됩니다. 예를 들어, 유니 코드 문자 0x22909는 好를 의미합니다. 실제로 이것에 대한 키가있는 키보드 (있는 경우)는 많지 않습니다.
OS는 사용자가 구성한 입력 방법을 사용하여 키 입력을 문자 코드로 변환합니다. 결과는 키 누르기 이벤트로 전송됩니다. (keydown 및 keyup은 텍스트를 입력하지 않고 사용자가 버튼을 누를 때 반응합니다.)
답변
이 질문을 우연히 발견 한 미래의 사람들을 위해 다음과 같은 작업을 수행하는 더 좋은 방법이 있습니다.
document.addEventListener('keydown', function(event) {
if (event.ctrlKey && event.key === 'z') {
alert('Undo!');
}
});
를 사용 event.key
하면 코드가 크게 단순화되어 하드 코딩 된 상수가 제거됩니다. IE 9+를 지원합니다.
document.addEventListener
또한를 사용 하면 동일한 이벤트에 대해 다른 리스너를 방해하지 않습니다.
마지막으로을 사용할 이유가 없습니다 window.event
. 적극적으로 권장하지 않으며 코드가 손상 될 수 있습니다.
답변
Ctrl+ t도 가능합니다 … 키 코드를 84와 같이 사용하십시오.
if (evtobj.ctrlKey && evtobj.keyCode == 84)
alert("Ctrl+t");
답변
$(document).keydown(function(e){
if( e.which === 89 && e.ctrlKey ){
alert('control + y');
}
else if( e.which === 90 && e.ctrlKey ){
alert('control + z');
}
});
답변
90이 Z핵심이며 필요한 캡처를 수행합니다 …
function KeyPress(e){
// Ensure event is not null
e = e || window.event;
if ((e.which == 90 || e.keyCode == 90) && e.ctrlKey) {
// Ctrl + Z
// Do Something
}
}
요구 사항에 따라 e.preventDefault();
if 문에 를 추가 하여 사용자 지정 기능을 독점적으로 수행 할 수 있습니다.
답변
내가 만든이 플러그인이 도움이 될 수 있습니다.
이 플러그인을 사용하여 다음과 같이 실행할 키 코드와 기능을 제공해야합니다.
simulatorControl([17,90], function(){console.log('You have pressed Ctrl+Z');});
코드에서 Ctrl+ 를 수행하는 방법을 표시했습니다 Z. 링크에서 자세한 문서를 얻을 수 있습니다. 플러그인은 Codepen의 내 펜의 JavaScript 코드 섹션에 있습니다.
답변
CTRL+ 에이 코드를 사용하십시오 Z. 키 Z누르기에 대한 키 코드 는 122이고 CTRL+ Z는 26입니다. 콘솔 영역에서이 키 코드를 확인하십시오.
$(document).on("keypress", function(e) {
console.log(e.keyCode);
/*ctrl+z*/
if(e.keyCode==26)
{
//your code here
}
});