2016-11-06 2 views
0

Ich habe einen Arbeitscode, wo, wenn der Benutzer alles auf Textbox konzentrieren.Jquery Autofokus, aber die Kopie schlägt fehl

Aber was ich will ist, wenn der Benutzer Strg + C es dem Benutzer erlauben sollte, jeden verfügbaren Text in der Website zu kopieren. Auch sollte es alle ctrl Befehle, wie Strg + A, Strg + P, etc. unterstützen

 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">

Antwort

0

Verwenden Sie ein boolean zu wissen, ob CTRL gedrückt ist oder nicht.

$(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

es den Autofokus auf eine beliebige Taste drücken brechen :( – kannu

+0

Versuchen Sie, den 'keyup' Teil zu entfernen, um sicherzustellen, das ist, was es tut. Wenn es ist, bewegen Sie die' focus' if-Anweisung, um dort statt. – TheValyreanGroup

+0

können Sie bitte hier überprüfen: https://jsfiddle.net/p47a3107 beide nicht funktionieren. – kannu

Verwandte Themen