자바 스크립트에서 ctrl + z 키 조합 캡처
이 코드로 자바 스크립트에서 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은 텍스트를 입력하지 않고 사용자가 버튼을 누르면 반응합니다.)
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 문에 를 추가 하여 사용자 지정 기능을 독점적으로 수행 할 수 있습니다.
For future folks who stumble upon this question, here's a better method to get the job done:
document.addEventListener('keydown', function(event) {
if (event.ctrlKey && event.key === 'z') {
alert('Undo!');
}
});
Using event.key
greatly simplifies the code, removing hardcoded constants. It has support for IE 9+, see the documentation here: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key
Additionally, using document.addEventListener
means you won't clobber other listeners to the same event. See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
Finally, there is no reason to use window.event
, its actively discouraged and can result in fragile code. See https://developer.mozilla.org/en-US/docs/Web/API/Window/event
This Plugin Made by me may be helpful.
You can use this plugin you have to supply the key Codes and function to be run like this
simulatorControl([17,90], function(){console.log('You have pressed Ctrl+Z');});
In the code I have displayed how to perform for Ctrl+Z. You will get Detailed Documentation On the link. Plugin is in JavaScript Code section Of my Pen on Codepen.
Use this code for CTRL+Z. keycode for Z in keypress is 122 and the CTRL+Z is 26. check this keycode in your console area
$(document).on("keypress", function(e) {
console.log(e.keyCode);
/*ctrl+z*/
if(e.keyCode==26)
{
//your code here
}
});
참고URL : https://stackoverflow.com/questions/16006583/capturing-ctrlz-key-combination-in-javascript
'IT박스' 카테고리의 다른 글
Sinon JS“이미 래핑 된 ajax 래핑 시도” (0) | 2020.11.18 |
---|---|
T-SQL의 PIVOT 함수 이해 (0) | 2020.11.18 |
새 요청시 이전 ajax 요청 중단 (0) | 2020.11.18 |
기기에서 iOS 앱을 제거한 후 iOS에서 identifierForVendor를 보존하는 방법은 무엇입니까? (0) | 2020.11.18 |
Vim 파일의 다른 곳에서 레지스터 또는 행 범위의 내용으로 대체 (0) | 2020.11.18 |