Firefox 键盘事件的时间戳值不正确

Firefox keyboard events have incorrect timeStamp values

我有一些软件可以记录每次击键的时间。我正在使用 keyupkeydown 事件来获取上升和下降时间。这些事件有一个参数,timeStamp,相对于纪元 should be 毫秒。在 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,返回的时间戳值为 1446582863442,但在 Firefox 中为 2444770694。

这是一个open issue from 2004, and affects other events too. The issue is that Firefox is using a different epoch time;而不是 unix Epoch 时间,它似乎正在使用系统启动时间。

来自 timeStamp 属性的 W3 定义:

Due to the fact that some systems may not provide this information the value of timeStamp may be not available for all events. When not available, a value of 0 will be returned. Examples of epoch time are the time of the system start or 0:0:0 UTC 1st January 1970.