2016-11-06 52 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