我正在尝试设置一个侦听器来侦听所有焦点事件。特别是我试图在任何时候输入或文本框获得焦点。根据一些研究,实现这一目标的广泛接受的方法是这样的:
document.body.onfocus = function(event) {
//Check the event.target for input/textbox
//Do something
};
但是 document.body.onfocus 似乎永远不会触发。我认为这可能是因为该文档实际上并没有获得焦点所以我尝试了:
document.body.focus();
最初“设置”焦点,但这也不起作用。
关于如何在所有输入/文本框上收听焦点事件而不直接在元素本身上实际设置事件的任何想法?请只使用香草 javascript,我没有使用框架。
根据接受的答案,这里有一些工作代码:
var focusHandler = function(event) {
var type = event.target.nodeName.toLowerCase();
if(type == 'input' || type == 'textarea') {
//Do something
}
};
document.body.addEventListener('focus', focusHandler, true); //Non-IE
document.body.onfocusin = focusHandler; //IE