События клавиатуры Firefox имеют неверные значения timeStamp
У меня есть программное обеспечение, которое фиксирует время для каждого нажатия клавиши. Я использую keyup
а также keydown
события, чтобы получить время вверх и вниз. Эти события имеют параметр, timeStamp
, что должно быть миллисекундами относительно эпохи. В Firefox это миллисекунды, но это слишком мало, чтобы быть с той эпохи. Это работает правильно для меня на Chrome и Safari.
Вот фрагмент кода, который я использую:
function keyDownHandler(event) {
var key = event.which,
when = event.timeStamp;
...
}
function keyUpHandler(event) {
var key = event.which,
when = event.timeStamp;
...
}
$(element).keydown(keyDownHandler);
$(element).keyup(keyUpHandler);
Я что-то здесь упускаю? Простой способ воспроизвести это посмотреть на странице JQuery для keyup и ввести их демо. В Chrome и Safari возвращаемое значение timeStamp составляет 1446582863442, а в Firefox - 2444770694.
1 ответ
Это открытый выпуск 2004 года, который также влияет на другие события. Проблема в том, что Firefox использует другое время электронной почты; скорее, чем время UNIX E poch, похоже, используется время запуска системы.
Из определения W3 timeStamp
атрибут:
В связи с тем, что некоторые системы могут не предоставлять эту информацию, значение
timeStamp
может быть недоступно для всех событий. Если недоступно, будет возвращено значение 0. Примерами времени эпохи являются время запуска системы или 0:0:0 UTC 1 января 1970 года.