有没有办法确定JS事件是以编程方式还是通过实际的交互来触发?

问题描述:

说我用document.getElementById('myTextArea').focus();编程设置了textarea的焦点。在那textarea我有一个onFocus事件:有没有办法确定JS事件是以编程方式还是通过实际的交互来触发?

document.getElementsByName('myTextArea')[0].onFocus = function() { 
    alert('I’m focused!'); 
}; 

我只想当用户实际的重点是textarea而不是当我通过编程设置集中onFocus被解雇。

onFocus中有没有方法可以判断事件是由代码还是由人类触发的,而无需传入我自己的参数?

+2

为什么当你不想这样做时,你有必要以编程方式设置焦点? – bugwheels94

+0

@Ankit - 为了说明我的需要,这是一个过于简单的例子。 –

+0

尝试检查悬停和焦点事件是否属实?只是扔在那里。 –

是的,当浏览器触发它时会产生一个'originalEvent'。

+0

我想你在考虑jQuery,而不是JavaScript ... –

+0

@BrandonDurham是真的。这是我发现解决它的唯一方法。 –