6

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 のコマンド キーだけが必要です。

4

3 に答える 3

4

この質問が最初に尋ねられて以来、物事はより簡単になったようです。Macで機能すると述べているこの回答を見つけました。私はちょうどそれをテストし、それはうまくいきます。event.metaKeycmd

document.body.addEventListener("keydown", function(event) {
   var key = event.key;
   var cmd_held = event.metaKey;

   if(cmd_held && key.toLowerCase() == "v") 
       pasta();

});
于 2016-06-26T22:19:11.490 に答える
1

mousetrap は、これらのことを非常に簡単にするライブラリです。

http://craig.is/killing/mice

//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
});
于 2013-08-22T06:47:23.267 に答える