代码之家  ›  专栏  ›  技术社区  ›  DataGreed

如何通过javascript捕获Mac的命令键?

  •  151
  • DataGreed  · 技术社区  · 15 年前

    如何捕获Mac CMD 通过javascript键?

    6 回复  |  直到 7 年前
        1
  •  206
  •   Rory O'Kane Erce    8 年前

    keydown keyup event.keyCode

    • 224
    • 17
    • 91 93

    JavaScript Madness: Keyboard Events

        2
  •  188
  •   Sunny Harsh Sanghani    7 年前

    event.metaKey You can try it here

        3
  •  13
  •   cryptopay    12 年前

    var key = event.keyCode || event.charCode || 0;
    console.log(key, event.metaKey);
    

    120, false 120, true

        4
  •  10
  •   Michael Zelensky    11 年前

    https://github.com/MichaelZelensky/jsLibraries/blob/master/macKeys.js

    document.onclick = function (event) {
      if (event.shiftKey || macKeys.shiftKey) {
        //do something interesting
      }
    }
    

        5
  •  6
  •   cmbuckley    13 年前

    jQuery hotkeys on GitHub

    $(window).bind('keydown.ctrl_s keydown.meta_s', function(event) {
        event.preventDefault();
        // Do something here
    });
    
        6
  •  3
  •   Dinis Cruz    9 年前

    app = angular.module('MM_Graph')
    
    class Keyboard
      constructor: ($injector)->
        @.$injector  = $injector
        @.$window    = @.$injector.get('$window')                             # get reference to $window and $rootScope objects
        @.$rootScope = @.$injector.get('$rootScope')
    
      on_Key_Down:($event)=>
        @.$rootScope.$broadcast 'keydown', $event                             # broadcast a global keydown event
    
        if $event.code is 'KeyS' and ($event.ctrlKey or $event.metaKey)       # detect S key pressed and either OSX Command or Window's Control keys pressed
          @.$rootScope.$broadcast '', $event                                  # broadcast keyup_CtrS event
         #$event.preventDefault()                                             # this should be used by the event listeners to prevent default browser behaviour
    
      setup_Hooks: ()=>
        angular.element(@.$window).bind "keydown", @.on_Key_Down              # hook keydown event in window (only called once per app load)
        @
    
    app.service 'keyboard', ($injector)=>
      return new Keyboard($injector).setup_Hooks()
    
    推荐文章