[JQUERY] 최고의 크로스 브라우저의 방법은 JQuery와 함께 CTRL + S를 캡처?
JQUERY최고의 크로스 브라우저의 방법은 JQuery와 함께 CTRL + S를 캡처?
해결법
-
1.
$(window).keypress(function(event) { if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true; alert("Ctrl-S pressed"); event.preventDefault(); return false; });
그냥 115 이상 확인해야 할 수 있도록 키 코드는 브라우저마다 다를 수 있습니다.
-
2.이것은 Ctrl 키 + S에서 Ctrl + F 및 Ctrl + G를 오버로드 나 (사용 JQuery와) 작동 :
이것은 Ctrl 키 + S에서 Ctrl + F 및 Ctrl + G를 오버로드 나 (사용 JQuery와) 작동 :
$(window).bind('keydown', function(event) { if (event.ctrlKey || event.metaKey) { switch (String.fromCharCode(event.which).toLowerCase()) { case 's': event.preventDefault(); alert('ctrl-s'); break; case 'f': event.preventDefault(); alert('ctrl-f'); break; case 'g': event.preventDefault(); alert('ctrl-g'); break; } } });
-
3.당신은 브라우저의 특정 물건을 처리하기 위해 바로 가기 라이브러리를 사용할 수 있습니다.
당신은 브라우저의 특정 물건을 처리하기 위해 바로 가기 라이브러리를 사용할 수 있습니다.
shortcut.add("Ctrl+S",function() { alert("Hi there!"); });
-
4.이 jQuery를 솔루션은 Ctrl 키 + S 및 Cmd를 + S 모두에 대해, 크롬과 파이어 폭스에서 나를 위해 작동합니다.
이 jQuery를 솔루션은 Ctrl 키 + S 및 Cmd를 + S 모두에 대해, 크롬과 파이어 폭스에서 나를 위해 작동합니다.
$(document).keydown(function(e) { var key = undefined; var possible = [ e.key, e.keyIdentifier, e.keyCode, e.which ]; while (key === undefined && possible.length > 0) { key = possible.pop(); } if (key && (key == '115' || key == '83' ) && (e.ctrlKey || e.metaKey) && !(e.altKey)) { e.preventDefault(); alert("Ctrl-s pressed"); return false; } return true; });
-
5.이 사람은 크롬에 나를 위해 일한 ... 확실하지, 나를 위해 자본 S (83)를 반환 event.which 어떤 이유로 왜 (에 관계없이 캡의 상태가 잠금) 내가있는 fromCharCode과와 toLowerCase을 사용 그래서 그냥 안전을 위해
이 사람은 크롬에 나를 위해 일한 ... 확실하지, 나를 위해 자본 S (83)를 반환 event.which 어떤 이유로 왜 (에 관계없이 캡의 상태가 잠금) 내가있는 fromCharCode과와 toLowerCase을 사용 그래서 그냥 안전을 위해
$(document).keydown(function(event) { //19 for Mac Command+S if (!( String.fromCharCode(event.which).toLowerCase() == 's' && event.ctrlKey) && !(event.which == 19)) return true; alert("Ctrl-s pressed"); event.preventDefault(); return false; });
나는 83이 아닌 115을받을 사람이 왜 알고있는 경우에, 나는 사람이 나는 그것이 작동 아닌지 듣고 드리겠습니다 다른 브라우저에서이 테스트 또한 경우, 듣고 행복 할 것이다
-
6.나는 파이어 폭스, IE와 크롬을 지원하기 위해 몇 가지 옵션을 결합했다. 나는 또한 더 나은 지원 맥에 업데이트되었습니다
나는 파이어 폭스, IE와 크롬을 지원하기 위해 몇 가지 옵션을 결합했다. 나는 또한 더 나은 지원 맥에 업데이트되었습니다
// simply disables save event for chrome $(window).keypress(function (event) { if (!(event.which == 115 && (navigator.platform.match("Mac") ? event.metaKey : event.ctrlKey)) && !(event.which == 19)) return true; event.preventDefault(); return false; }); // used to process the cmd+s and ctrl+s events $(document).keydown(function (event) { if (event.which == 83 && (navigator.platform.match("Mac") ? event.metaKey : event.ctrlKey)) { event.preventDefault(); save(event); return false; } });
-
7.솔직히, 내 기본 바로 가기 키를 재정의 할 수있는 웹 애플리케이션을하고 싶습니다. Ctrl 키 + S는 이미 브라우저에서 무언가를. 내가 볼 수있어 위치에 따라 갑자기 그 변화를 갖는 것은 종종 버그 말할 것도없고, 혼란과 실망. 그것은 Ctrl 키 + I와 같은 모습 때문에 두 사이트에서 내 작품을 망치고 평소대로 탭을 전환에서 저를 방지 사이트 납치 Ctrl + Tab을 했어.
솔직히, 내 기본 바로 가기 키를 재정의 할 수있는 웹 애플리케이션을하고 싶습니다. Ctrl 키 + S는 이미 브라우저에서 무언가를. 내가 볼 수있어 위치에 따라 갑자기 그 변화를 갖는 것은 종종 버그 말할 것도없고, 혼란과 실망. 그것은 Ctrl 키 + I와 같은 모습 때문에 두 사이트에서 내 작품을 망치고 평소대로 탭을 전환에서 저를 방지 사이트 납치 Ctrl + Tab을 했어.
당신이 바로 가기 키를 원하는 경우, accesskey 속성을 사용합니다. 기존 브라우저 기능을 중단하지 마십시오.
-
8.$ (문서) .keydown (기능 (전자) { 경우 ((e.key == 'S'|| e.key == 'S') && (e.ctrlKey || e.metaKey)) { e.preventDefault (); 경고 ( "Ctrl 키의 누를"); false를 반환; } true를 반환; }); <스크립트 SRC = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> script> Ctrl 키 + S 곳을 눌러보십시오.
$ (문서) .keydown (기능 (전자) { 경우 ((e.key == 'S'|| e.key == 'S') && (e.ctrlKey || e.metaKey)) { e.preventDefault (); 경고 ( "Ctrl 키의 누를"); false를 반환; } true를 반환; }); <스크립트 SRC = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> script> Ctrl 키 + S 곳을 눌러보십시오.
이 AlanBellows의 대답 @의 최신 버전, 키를 대체합니다. 또한 (Ctrl + S를 누르지 경우 자본 대신 S의 S 전송) 크롬의 수도 키 결함으로도 사용할 수 있습니다. 모든 현대적인 브라우저에서 작동합니다.
-
9.@Eevee : 브라우저가 풍부하고 풍부한 기능과 데스크탑 애플리케이션을 대체하기 시작의 홈 해짐에 따라, 그냥 키보드 단축키의 사용을 포기하는 옵션이 될 것 아니에요. 키보드 명령의 Gmail의 풍부하고 직관적 인 세트는 Outlook을 포기하는 내 의지에 쓸모 있었다. 투두 이스트, 구글 리더, 구글 캘린더의 키보드 단축키는 모두 매일 내 인생이 훨씬 쉽게합니다.
@Eevee : 브라우저가 풍부하고 풍부한 기능과 데스크탑 애플리케이션을 대체하기 시작의 홈 해짐에 따라, 그냥 키보드 단축키의 사용을 포기하는 옵션이 될 것 아니에요. 키보드 명령의 Gmail의 풍부하고 직관적 인 세트는 Outlook을 포기하는 내 의지에 쓸모 있었다. 투두 이스트, 구글 리더, 구글 캘린더의 키보드 단축키는 모두 매일 내 인생이 훨씬 쉽게합니다.
개발자는 확실히 이미 브라우저에서 의미가 키 입력을 무시하지 않도록주의해야한다. 예를 들어, 대량 살상 무기는 내가 "인용구"보다는 "앞으로 삭제 단어"로 설명 할 수 없 Ctrl 키를 해석 + 델에 입력을 해요 텍스트 상자. 사이트 개발자가 사용할 수있는 그 브라우저가 향후 버전에서 멀리 체재에 커밋 것 "브라우저 안전"바로 가기의 표준 목록 곳이 있는지 궁금 해요.
-
10.이것은 쉽게 다른 키 조합을 포함 할 수 있습니다 여기에 다른 제안보다 훨씬 더 쉽게 읽을 수 내 솔루션, 그리고 IE, 크롬, 파이어 폭스에서 테스트되었습니다 :
이것은 쉽게 다른 키 조합을 포함 할 수 있습니다 여기에 다른 제안보다 훨씬 더 쉽게 읽을 수 내 솔루션, 그리고 IE, 크롬, 파이어 폭스에서 테스트되었습니다 :
$(window).keydown(function(evt) { var key = String.fromCharCode(evt.keyCode); //ctrl+s if (key.toLowerCase() === "s" && evt.ctrlKey) { fnToRun(); evt.preventDefault(true); return false; } return true; });
-
11.나는이 작은 플러그인을 좋아합니다. 그래도 조금 더 크로스 브라우저 편의를 필요로한다.
나는이 작은 플러그인을 좋아합니다. 그래도 조금 더 크로스 브라우저 편의를 필요로한다.
-
12.이것은 (https://stackoverflow.com/a/8285722/388902에서 적응) 작동합니다.
이것은 (https://stackoverflow.com/a/8285722/388902에서 적응) 작동합니다.
var ctrl_down = false; var ctrl_key = 17; var s_key = 83; $(document).keydown(function(e) { if (e.keyCode == ctrl_key) ctrl_down = true; }).keyup(function(e) { if (e.keyCode == ctrl_key) ctrl_down = false; }); $(document).keydown(function(e) { if (ctrl_down && (e.keyCode == s_key)) { alert('Ctrl-s pressed'); // Your code return false; } });
-
13.예:
예:
shortcut.add("Ctrl+c",function() { alert('Ok...'); } ,{ 'type':'keydown', 'propagate':false, 'target':document });
용법
<script type="text/javascript" src="js/shortcut.js"></script>
다운로드 링크 : http://www.openjs.com/scripts/events/keyboard_shortcuts/#
-
14.! 앨런 벨로우즈에 대답하기 : AltGr 키를 사용하는 사용자 추가 (e.altKey) 할 때 입력 (예를 들어, 폴란드). 이 눌러 AltGr 키 + S Ctrl 키 + S와 같은 결과를 줄 것없이
! 앨런 벨로우즈에 대답하기 : AltGr 키를 사용하는 사용자 추가 (e.altKey) 할 때 입력 (예를 들어, 폴란드). 이 눌러 AltGr 키 + S Ctrl 키 + S와 같은 결과를 줄 것없이
$(document).keydown(function(e) { if ((e.which == '115' || e.which == '83' ) && (e.ctrlKey || e.metaKey) && !(e.altKey)) { e.preventDefault(); alert("Ctrl-s pressed"); return false; } return true; });
-
15.내게로이 플러그인 제작은 도움이 될 수 있습니다.
내게로이 플러그인 제작은 도움이 될 수 있습니다.
플러그인
당신은 다음과 같이 실행되도록 키 코드 및 기능을 제공 할 플러그인이있다 사용할 수 있습니다
simulatorControl([17,83], function(){ console.log('You have pressed Ctrl+Z'); });
코드에서 내가 Ctrl 키 + S를 위해 수행하는 방법을 표시했다. 당신은 링크에 대한 자세한 문서를 얻을 것이다. 플러그인 Codepen 내 펜의 자바 스크립트 코드 섹션에 있습니다.
-
16.나는 기본 동작을 방지하기 위해 ( "메시지와 함께") 경고를 사용하여, IE에 내 문제를 해결 :
나는 기본 동작을 방지하기 위해 ( "메시지와 함께") 경고를 사용하여, IE에 내 문제를 해결 :
window.addEventListener("keydown", function (e) { if(e.ctrlKey || e.metaKey){ e.preventDefault(); //Good browsers if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) { //hack for ie alert("Please, use the print button located on the top bar"); return; } } });
from https://stackoverflow.com/questions/93695/best-cross-browser-method-to-capture-ctrls-with-jquery by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 자바 스크립트 / jQuery를 함께 리디렉션에 POST 데이터를 전송? [복제] (0) | 2020.10.20 |
---|---|
[JQUERY] 그것은 jQuery를 함께 인라인 스타일을 제거 할 수 있습니까? (0) | 2020.10.20 |
[JQUERY] 계속하기 전에 자바 스크립트 절전 / 대기 [중복] (0) | 2020.10.20 |
[JQUERY] 화면 너비 미만 960 픽셀 경우 무언가를 (0) | 2020.10.20 |
[JQUERY] 미디어 쿼리와 같은 $ (창) .width () 동일하지 (0) | 2020.10.20 |