<element> .KeyCode не работает на некоторых клавиатурах? - PullRequest
1 голос
/ 16 октября 2011

Я обнаруживаю нажатую клавишу (<tab> в данном случае) внутри поля ввода текста. Хорошо, пока я кодирую. Но когда я тестирую на другом компьютере (ноутбуке, с той же версией Firefox), он возвращает «Undefined». Почему?

Например: когда я нажал клавишу <tab>, он должен вернуть 9. Вместо этого он возвращает Undefined или 0 на некоторых других машинах. Почему?

Используя следующий код JS:

function keyHandler(e) {
  var charCode;
  if (e && e.which) {
      charCode = e.which;
  } else if (window.event) {
      e = window.event;
      charCode = e.keyCode;
  }

  if (charCode == 9) {
    bla.. bla.. bla.. bla.. 
  }
}

Что удивительно, так это то, что он работает на моем pc, но не на другом laptop. Клавиатуры ноутбуков имеют разные коды клавиш?

или почему?

1 Ответ

1 голос
/ 16 октября 2011

попробуй:

function keyHandler() {
var e = arguments[0] || window.event,
    charCode = e.which || e.keyCode || e.charCode;

  if (charCode == 9) {
    bla.. bla.. bla.. bla.. 
  }
  else {
  console.log( charCode );
  }
}

или просто используй jQuery

...