2015-11-03 26 views
0

我有一些軟件可以捕獲每次擊鍵的時間。我正在使用keyup和​​事件來獲取上升和下降時間。這些事件有一個參數,timeStamp,其中should be毫秒相對於紀元。在Firefox上,這是毫秒級的,但從時代來看它太小了。這對Chrome和Safari瀏覽器正常運行。Firefox鍵盤事件的時間戳值不正確

下面是我使用的代碼片段:

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.

回答

0

這是open issue from 2004,也會影響其他事件。問題在於Firefox正在使用different epoch time;而不是unix E poch時間,它似乎是使用系統啓動時間。

timeStamp屬性的W3定義:

由於這樣的事實,有些系統不能提供此信息的timeStamp值可能並不適用於所有的事件。當不可用時,將返回值0。具有劃時代的時間例子是系統啓動或0時0:0 UTC 1月1日1970年

+0

,真正使這真的是難以用,然後。感謝您的迴應。 – Pete

+0

DOM的未來版本可能會將此更改爲[指定unix時代](https://dom.spec.whatwg.org/#dom-event-timestamp)。但是現在,在'Date'對象上使用'getTime()'方法會更好。 – szupie