我在javascript中使用ctrl + c和ctrl + v事件我想在ctrl + v事件上绑定一个函数。我能够在Windows系统中使用event.keyCode,但在命令按下的mac os中,我无法弄清楚事件。 我的代码是
$('.hindi_content').keyup(function(event){
console.log('UP'+event.keyCode);
console.log('in window::'+ event.ctrlKey+'in mac os'+event.metaKey+'####'+event.META_MASK+'##$&&'+event.CTRL_MASK);
// this is working with windows not with mac os.
if(event.keyCode==86 && event.ctrlKey)
{
console.log('ctrl press'+event.ctrlKey);
col_val = $('#'+this.id).val();
console.log('col val'+col_val);
$('#hidden_'+this.id).val(col_val);
console.log('hidden val'+ $('#hidden_'+this.id).val());
//converter_new(event,this.lang);
// return;
}
});
我搜索并找到event.metaKey,但它是用于mac中的ctrl键我只想在mac os中使用命令键。
答案 0 :(得分:3)
自从第一次提出这个问题以来,事情似乎变得更容易了。我发现this answer表示event.metaKey
适用于mac上的cmd
。我只是测试了它,它工作正常。
document.body.addEventListener("keydown", function(event) {
var key = event.key;
var cmd_held = event.metaKey;
if(cmd_held && key.toLowerCase() == "v")
pasta();
});
答案 1 :(得分:1)
mousetrap是一个让这些事情变得非常简单的库:
//control + v
Mousetrap.bind('ctrl+v', function(e) {
//do things here
});
//command + k & control +v
Mousetrap.bind(['command+v', 'ctrl+v'], function(e) {
//do things here
});
答案 2 :(得分:0)
Individual detect<br>
<input id="myinput" placeholder="Click command key on your mac"><br>
<div class="output" id="output"></div><br><br>
right or left detect<br>
<input id="myinput2" placeholder="Click command key on your mac"><br><br>
<div class="output" id="output2"></div>
<script type="text/javascript">
$(document).on('keydown', '#myinput', function() {
if (event.keyCode == '91') {
$("#output").empty().append("left command clicked");
}
if (event.keyCode == '93') {
$("#output").empty().append("right command clicked");
}
});
$(document).on('keydown', '#myinput2', function() {
if (event.keyCode == '91' || event.keyCode == '93') {
$("#output2").empty().append("right or left command clicked");
}
});
$("input").on('blur', function() {
$(".output").empty();
});
</script>