gpt4 book ai didi

javascript - 如何模拟 Event.timeStamp

转载 作者:可可西里 更新时间:2023-11-01 01:53:52 26 4
gpt4 key购买 nike

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.

可以捕获 new Eventdocument.createEvent 来相应地设置时间戳,但是如何拦截浏览器创建和发送的事件呢?

可以将事件监听器(捕获阶段)添加到监听“每个”事件类型的 document 并将时间戳写为接近调度时间,但这将是一个丑陋的 hack。

  • 有没有更好的方法来模拟 Event.timeStamp
  • 拦截 new Event/new CustomEventdocument.createEvent 是否存在任何潜在陷阱。
  • 是否有其他方式以编程方式创建事件?
  • 将事件监听器添加到 document 并尽早手动设置 timeStamp 是否存在任何潜在问题?

最佳答案

我找不到任何地方来拦截由浏览器而非用户代码生成的事件的创建。你的“丑陋的黑客”似乎工作正常:

addEventListener("click", function (e) {
Object.defineProperty(e, "timeStamp", {
get: function () { return 4; }
});
}, true);

显然,您必须使用您感兴趣的任何事件名称多次调用 addEventListener。请注意,直接设置 timeStamp 没有任何效果,但 defineProperty 有效。我只测试了 Chrome 和 IE9;我敢肯定互操作会很困惑,因为我们使用的是 getter 方法。

关于javascript - 如何模拟 Event.timeStamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9960822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com