Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有一种方法可以检测事件是使用输入设备还是通过.onEvent()中的脚本触发的?_Javascript_Jquery_Javascript Events - Fatal编程技术网

Javascript 是否有一种方法可以检测事件是使用输入设备还是通过.onEvent()中的脚本触发的?

Javascript 是否有一种方法可以检测事件是使用输入设备还是通过.onEvent()中的脚本触发的?,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,是否有一种方法可以检测事件是否是使用输入设备或通过脚本触发的,如.onEvent()?看起来您可以检查传递给事件处理程序的事件对象,以查看它是否是人工事件: if(event.originalEvent) { ... } 如果事件是由输入设备而不是脚本触发的,则事件对象似乎将具有名为“originalEvent”的属性。短故事,否 唯一可以检查的是事件对象,它被传递到回调处理程序(“事件处理程序”)。正如typeof在他的回答中所建议的那样,如果事件是由设备触发的,可能会有一些属性没有

是否有一种方法可以检测事件是否是使用输入设备或通过脚本触发的,如
.onEvent()

看起来您可以检查传递给事件处理程序的事件对象,以查看它是否是人工事件:

if(event.originalEvent) {
    ...
}
如果事件是由输入设备而不是脚本触发的,则事件对象似乎将具有名为“originalEvent”的属性。

短故事,否

唯一可以检查的是
事件对象
,它被传递到回调处理程序(“事件处理程序”)。正如typeof在他的回答中所建议的那样,如果事件是由设备触发的,可能会有一些属性没有设置(反之亦然),但同样地,它是100%不可靠的。例如:

$('someinputcontrol').trigger({
    type:          'keydown',
    originalEvent: true
});

可以使用此技术向事件对象添加任何属性。同样,也没有可靠的方法来检测事件是否是由于设备或脚本引起的。

有趣的是。我认为不太可能遇到这种情况。。。如果您只使用自己的代码,您可以通过不传递originalEvent属性来确保这一点不会发生。originalEvent属性是否对您有所帮助,或者您是否在寻找其他内容?