Entry
Can I keep track of which element has focus?
Can I keep track of which element has focus?
Apr 8th, 2000 07:34
Martin Honnen,
First, in NN3/4 form elements have an
onfocus
and
onblur
handler allowing you to script those events for individual elements.
IE4+ and NN6 also provide onfocus/onblur for other page elements like
links.
If you want to globally monitor the focus you can do so in NN4 and NN6
by handling
document.onfocus
document.onblur
as in the following example:
<HTML>
<HEAD>
<SCRIPT>
var focussedElement;
if (document.layers)
document.captureEvents(Event.FOCUS | Event.BLUR);
document.onfocus = function (evt) {
if (focussedElement)
focussedElement.focussed = false;
focussedElement =
evt.target ? evt.target : event.srcElement;
focussedElement.focussed = true;
window.status = 'focus on: ' +
(focussedElement.id ? focussedElement.id :
focussedElement.name ? focussedElement.name : focussedElement);
}
document.onblur = function (evt) {
if (focussedElement)
focussedElement.focussed = false;
focussedElement = null;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="formName">
<INPUT TYPE="text" NAME="aField" VALUE="Kibo">
<INPUT TYPE="button" NAME="aButton" VALUE="button">
</FORM>
<A HREF="http://JavaScript.FAQTs.com">
JavaScript.FAQTs.com
</A>
</BODY>
</HTML>
IE4+ doesn't allow that as focus/blur events in IE don't bubble
(meaning the focus/blur event of page elements dont't show up at the
document level). So all you could do with IE4+ is loop through
document.all and assign onfocus/onblur handlers for every element.