Nie*_*sol 147

event.shiftKey是一个布尔值.true如果按下Shift键,false如果没有.altKeyctrlKey以同样的方式工作.

所以基本上你只需要正常检测keydown onkeydown,并根据需要检查这些属性.

  • 我认为这个比选择的答案更具信息性,因为它实际上描述了正确功能的行为,而OA只是提供了一堆浏览器黑客来确保这个功能有效. (16认同)

Ada*_*lin 38

var onkeydown = (function (ev) {
  var key;
  var isShift;
  if (window.event) {
    key = window.event.keyCode;
    isShift = !!window.event.shiftKey; // typecast to boolean
  } else {
    key = ev.which;
    isShift = !!ev.shiftKey;
  }
  if ( isShift ) {
    switch (key) {
      case 16: // ignore shift key
        break;
      default:
        alert(key);
        // do stuff here?
        break;
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

  • 难怪人们为此使用jQuery.伙计,那是很多代码. (3认同)
  • 不再需要所有这些代码。请参阅其他答案。 (2认同)