2012-03-13 3 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

(Chromeでは)私にとっては機能しません。 – Kon

+0

@Kon Chromeのコードを更新しました。それは5年前に働いた... :) – mx0

関連する問題