В современных стандартах есть события focusin/focusout — то же самое, что и focus/blur, только они всплывают.
Поддерживается в IE6+, а также в Safari/Chrome и Opera. Во всех браузерах, кроме IE, должны быть назначены не через on-свойство, а при помощи elem.addEventListener.
Единственный современный браузер, который их не поддерживает — это Firefox.
Спрашивается, если есть стандарт, то почему FF на него забивает? Или должно быть понятие «текущий стандарт», чтоли. Если я вникаю в какую-то хрень, я хочу быть уверен, что данная хрень работает везде. Тем более, что, например, это вот, вышеупомянутое дерьмо особо и не нужно, есть же focus/blur/onfocus/onblur. Проблема в том, что ты читаешь какую нибудь хрень, и тебе надо сразу отфильтровать некроссбраузрную,нестандартную, сомнительную хрень. Ведь надо же на что-то ориентироваться? Если не на стандарты, тогда на что?