2016-11-06 40 views
0

我有一個工作代碼,如果用戶輸入任何它關注文本框。Jquery自動對焦但複製失敗

但我想要的是,當用戶鍵入Ctrl + C時,它應該讓用戶複製網站中可用的任何文本。 還應該支持所有的CTRL命令,如Ctrl + A,Ctrl + P鍵,等

 jQuery('body').keydown(function (e) { 
 
      if ((e.keyCode === 8 || e.keyCode === 32 || e.keyCode === 173 || e.keyCode >= 48 && e.keyCode <= 90) || (e.keyCode >= 96 && e.keyCode <= 111) || (e.keyCode >= 185 && e.keyCode <= 193) || (e.keyCode >= 219 && e.keyCode <= 222)) { 
 
       $('#textbx').focus(); 
 
      } 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
to select and copy text 
 

 
<br><br><br><br> 
 
<input class="textbx" id="textbx" value="" type="text">

回答

0

使用Boolean知道是否被按下CTRL

$(body).keydown(function(e) { 
    if (e.keyCode == ctrlKey || e.keyCode == cmdKey) ctrlDown = true; 

    if ((e.keyCode === 8 || e.keyCode === 32 || e.keyCode === 173 || e.keyCode >= 48 && e.keyCode <= 90) || (e.keyCode >= 96 && e.keyCode <= 111) || (e.keyCode >= 185 && e.keyCode <= 193) || (e.keyCode >= 219 && e.keyCode <= 222)) { 
     $('#textbx').focus(); 
    } 
}).keyup(function(e) { 
    if (e.keyCode == ctrlKey || e.keyCode == cmdKey) ctrlDown = false; 

    if (ctrlDown && e.keyCode == cKey){ 
     $(body).select(); 
     document.execCommand("copy"); 
    } 
}); 
+0

打破它的自動對焦上的任何按鍵:( – kannu

+0

嘗試刪除'keyup'部分,以確保這就是在做。如果是,將你的'focus' if語句來代替存在。 – TheValyreanGroup

+0

請問您可以在這裏查看:https://jsfiddle.net/p47a3107都不起作用。 – kannu