可重用的Javascript事件对象

bel*_*ace 3 javascript mouseevent event-dispatching

我正在制作鼠标点击事件,我试图连续几次将它发送到某个节点.为此,我使用相同的MouseEvent对象,由于某种原因,这种方法不起作用.然而,当我每次手动创建事件时,系统工作.有谁知道这种行为的原因是什么?我试图改变timeStamp,但问题仍然存在.我可以像之前提到的那样解决问题,但我对这个MouseEvent以及相应的调度和处理子系统如何工作感兴趣.我在MDC页面上找到的MouseEvent规范似乎缺少很多信息.

Tnx的帮助!

Wla*_*ant 6

这实际上是一种安全机制,不允许调度之前调度过的事件.事件总是有与之关联的其他数据,例如它是来自可信来源(用户的键盘而不是JavaScript代码).一些攻击(主要针对MSIE,因为它有可变的事件对象)正在使用它 - 它们捕获了一个受信任的事件,更改了它并在其他地方再次发送它(可能并不总是需要更改,在一个不同的元素上调度它足以进行某些攻击) .最终,不允许重新安排事件被证明是最佳解决方案.毕竟,这个功能并不是真正需要的:创建一个具有相同属性的新事件对象(减去隐藏数据)并不是很难.

几乎所有这方面的安全问题都与文件输入控制有关.前段时间,Firefox决定彻底改变文件输入UI,不允许直接输入文件名.我想知道这种变化是否使事件的重新分配成为非问题.我怀疑任何人都愿意冒险再次冒这种蠕虫.