如何跨浏览器处理CTRL + PLUS密钥?

时间:2017-04-24 11:10:04

标签: javascript keypress keydown preventdefault

我尝试阻止默认缩放事件并触发功能。

我设法在浏览器中执行默认保存事件( CTRL + S ):

document.documentElement.addEventListener('keydown', function(e) {
  e = e || window.event;
  var keynum;
  if (window.event) {
    keynum = e.keyCode;
  } else if (e.which) {
    keynum = e.which;
    if (e.ctrlKey) {
      switch (String.fromCharCode(keynum)) {
        case 'S':
          console.log('CTRL S pressed');
          e.preventDefault ? e.preventDefault() : (e.returnValue = false);
          break;
      }
    }
  }
});

https://codepen.io/anon/pen/NjRbaa?editors=1010

然而, CTRL + + 似乎更棘手,因为" keyCode&#34没有交叉浏览器+ ;标志。我尝试使用keypress代替keydown,但在Chrome和IE中未阻止默认设置。

1 个答案:

答案 0 :(得分:0)

https://github.com/jeresig/jquery.hotkeys试试这个:)

$(document).on('keydown', null, 'ctrl+s', fn);