为什么firefox中的event.timeStamp为0?

时间:2012-04-01 00:28:44

标签: javascript dom dom-events dom4

http://jsfiddle.net/wDddR/3/

var input = document.createElement("input");
input.onclick = function (ev) {
    console.log(ev.timeStamp === 0 ? "WHY IS IT ZERO" : "It's not broken");
};
input.click()

var ev = document.createEvent("Event");
console.log(ev.timeStamp === 0 ? "THIS IS MADNESS" : "At least this works");

在firefox中,第一次时间是0,而在chrome中,时间戳是一个合理的数字。

在firefox和chrome中,第二次timeStamp是一个明智的数字。

2 个答案:

答案 0 :(得分:6)

  

http://api.jquery.com/event.timeStamp/

     

注意:由于自2004年以来打开了一个错误,因此未填充此值   在Firefox中正确无法知道事件发生的时间   是在那个浏览器中创建的。

Bug #238041 - nsDOMEvent::AllocateEvent assigns a PR_Now() into a PRUint32

答案 1 :(得分:0)

W3C specification州:

  

用于指定创建事件的时间(相对于纪元的毫秒数)。由于某些系统可能无法提供此信息,因此timeStamp的值可能不适用于所有事件。如果不可用,将返回值0。