Event.timeStamp
The timeStamp attribute must return the value it was initialized to. When an event is created the attribute must be initialized to the number of milliseconds that has passed since 00:00:00 UTC on 1 January 1970.
One could trap both new Event
and document.createEvent
to set the timeStamp accordingly but how do you intercept events created and dispatched by the browser?
One could add an event listener (capture phase) to the document
that listens on "every" event type and write the timeStamp as close to the dispatch time but that would be an ugly hack.
Event.timeStamp
?new Event
/ new CustomEvent
and document.createEvent
. document
and manually setting timeStamp
as early as possible ?Definition and Usage The timeStamp event property returns the number of milliseconds from the document was finished loading until the specific event was created.
addEventListener("name-of-event", function(e) { console. log(e. detail); // Prints "Example of an event" }); // Create the event var event = new CustomEvent("name-of-event", { "detail": "Example of an event" }); // Dispatch/Trigger/Fire the event document. dispatchEvent(event);
Answer: Use the Date. now() Method You can simply use the JavaScript Date. now() method to generate the UTC timestamp in milliseconds (which is the number of milliseconds since midnight Jan 1, 1970).
A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time.
I couldn't find any place to intercept the creation of events that were generated by the browser rather than by user code. Your "ugly hack" seems to work okay though:
addEventListener("click", function (e) {
Object.defineProperty(e, "timeStamp", {
get: function () { return 4; }
});
}, true);
Obviously you'd have to call addEventListener a bunch of times with whatever event names you're interested in. Note that setting the timeStamp
directly has no effect, but defineProperty works. I only tested Chrome and IE9; I'm sure interop would be a mess since we're using a getter method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With