События клавиатуры 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 года.

Другие вопросы по тегам