2012-03-13 26 views

回答

1

是的,你可以,你將不得不以編程方式做到這一點。

下面是一個例子:Handling Keybord Shortcuts in Javascript

是的,這是一個很好的問題。

+0

,但它也選擇頁面上的所有文本。這不應該發生 – manishjangir 2012-03-13 13:52:20

+0

這就是爲什麼我說你必須以編程方式進行。 – 2012-03-13 13:54:18

+1

我認爲這個問題得到了一個有用的概念,但還不清楚(特別是JQuery選擇和瀏覽器選擇之間的歧義)。 – Chet 2012-03-13 13:54:23

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

不適用於我(在Chrome中)。 – Kon 2017-07-17 15:47:17

+0

@Kon我更新了Chrome的代碼。它在5年前工作...... :) – mx0 2017-07-17 18:24:58

相關問題