2012-03-13 1 views

답변

1

예, 프로그래밍 방식으로 처리해야합니다. 여기

은 예입니다 Handling Keybord Shortcuts in Javascript

그리고 네,이 좋은 질문이다.

+0

하지만 페이지의 모든 텍스트도 선택됩니다. 이것은 일어나지 않아야합니다. – manishjangir

+0

그래서 제가 프로그래밍 방식으로 처리해야한다고 말한 것입니다. –

+1

나는이 질문이 유용한 개념으로 생각되지만 명확하지 않다. (특히 JQuery 선택과 브라우저 선택 사이의 모호성). – Chet

0

당신은 + 또는 Ctrl 키 + Ctrl 키를 잡기 위해이 기능을 사용할 수 있습니다.

$("body").keydown(function(e) { 
    if (e.ctrlKey && (e.keyCode == 65 || e.keyCode == 97)) { 
     selectText('copyme'); 
     e.preventDefault(); 
    } 
}); 

이 기능은 Firefox와 Chrome에서 작동합니다. 이전 버전은 keypress() 함수와 e.charCode을 사용했으며 최신 버전의 Chrome에서는 작동하지 않았습니다.

유일한 문제는 텍스트를 선택하는 것입니다. 나는이 대답 여기 https://stackoverflow.com/a/987376/446792

작동하는 데모가에서 기능 selectText()을 차용했습니다

$(document).ready(function() { 
 

 
    function selectText(element) { 
 
     var doc = document; 
 
     var text = doc.getElementById(element); 
 

 
     if (doc.body.createTextRange) { // ms 
 
      var range = doc.body.createTextRange(); 
 
      range.moveToElementText(text); 
 
      range.select(); 
 
     } else if (window.getSelection) { // moz, opera, webkit 
 
      var selection = window.getSelection(); 
 
      var range = doc.createRange(); 
 
      range.selectNodeContents(text); 
 
      selection.removeAllRanges(); 
 
      selection.addRange(range); 
 
     } 
 
    } 
 

 
    $("body").keydown(function(e) { 
 
     if (e.ctrlKey && (e.keyCode == 65 || e.keyCode == 97)) { 
 
      selectText('copyme'); 
 
      e.preventDefault(); 
 
     } 
 
    }); 
 

 
});
table, td { 
 
border: solid 1px black; 
 
    margin: 10px; 
 
    padding: 10px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent iaculis lobortis adipiscing. Donec consequat commodo posuere. Praesent magna orci, suscipit ut facilisis sed, volutpat in lorem. Nulla eleifend.</p> 
 
<table id="copyme"> 
 
    <tr><td>A</td><td>B</td><td>C</td></tr> 
 
     <tr><td>D</td><td>E</td><td>F</td></tr> 
 
</table> 
 
<p>Vestibulum ac commodo libero. Aenean vitae magna nulla. Vivamus hendrerit, orci sed pretium aliquam.</p>

+0

나를 위해 (크롬에서) 작동하지 않습니다. – Kon

+0

@Kon Chrome 용 코드를 업데이트했습니다. 그것은 5 년 전에 일했습니다 ... :) – mx0

관련 문제