使用JavaScript捕获Shift键活动

问题描述 投票:2回答:3

我正在使用JavaScript和jQuery,并希望在用户释放Shift键时调用一个函数。到目前为止,我提供的代码可以在我测试过的所有浏览器中使用,但是在使用Firefox 3.5.7的错误控制台中会出现以下警告。我已经尝试过jQuery 1.2.6、1.3.2和1.4.1。

警告:不应使用keyup事件的'charCode'属性。该值无意义。

我在Google上搜索了此警告,但找不到如何防止它发生的明确答案。这是我正在使用的代码,有没有人有任何建议?

$(document).ready(
  function() {
    $(document).keyup(function(e) {
      if(e.keyCode == 16) {
        alert("Do something...");
      }
    });
  }
);
javascript jquery keyboard-events jquery-events
3个回答
0
投票

charCode可能由jQuery使用(因为您没有使用它)。在这种情况下,您实际上不必关心错误消息。


2
投票

您不能使用jQuery。没有它,这很简单:

document.onkeyup = function(evt) {
    evt = evt || window.event;
    if (evt.keyCode == 16) {
        alert("Shift");
    }
};

[请注意,某些较旧的浏览器(3.1之前的Safari,1.0之前的Firefox)不会触发Shift等修饰键的keyup事件。


0
投票

您还需要考虑跨浏览器的问题,请参见此处的跨浏览器解决方案:

http://cross-browser.com/x/examples/shift_mode.php

© www.soinside.com 2019 - 2024. All rights reserved.