我正在尝试设置一个侦听所有焦点事件的侦听器.特别是我试图在输入或文本框获得焦点的任何时候倾听.根据一些研究,广泛接受的实现方法是这样的:
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