我不相信有任何本地的方式来看看元素如何得到它的焦点(纠正我,如果我错了!)。
但是,您可以在点击鼠标时进行存储,使用键盘时进行存储,然后根据最后一个活动状态进行响应。
var inputState = null;
document.addEventListener("click", handleClick);
document.addEventListener("keyup", handleKey);
function handleClick() {
inputState = "mouse";
}
function handleKey() {
inputState = "keyboard";
}
function foo() {
if (inputState === "mouse") {
// mouse code
} else if (inputState === "keyboard") {
// keyboard code
} else {
// Function was called directly
}
// Reset input State after processing
inputState = null
}
这可能需要一些调整,但我希望你可以用它来找到正确的答案。
编辑:
我的回答是香草JS的解决方案,如果你有机会到jQuery的你可能要调查click和keyup事件处理程序。