On May 20, 2:40 am, VK <schools_r...@yahoo.comwrote:
On May 20, 12:12 pm, Jeff <jeffrey.big...@gmail.comwrote:
Hi,
I'm attaching an onfocus event handler to an anchor tag like this:
if(window.attachEvent) anchor_node.attachEvent('onfocus', gotFocus);
if(window.addEventListener) anchor_node.addEventListener('focus',
gotFocus, false);
function gotFocus() {
alert('i got focus');
}
Is there any way to tell the difference between when this anchor is
focused by a user (perhaps by tabbing to it) as opposed to when I
programatically do it via anchor_node.focus()?
Programmatical events:
1) do not re-fire for listeners
2) do not bubble (propagate)
I know that's true for other events, but it appears to not be true for
focus.
I've put a demonstration on this page:
http://webinsight.cs.washington.edu/...est_focus.html
After 5 seconds, the page will automatically focus on the "My Anchor"
link and it will alert "Got focus." If before that time, you put
focus on the link manually, it will also do this. The question then
is how can I distinguish these two types of gaining focus?
Thanks,
Jeff
<html>
<head>
<script>
function setListen() {
var anchor_node = document.getElementById('anchor_node');
if(window.attachEvent) anchor_node.attachEvent('onfocus', gotFocus);
if(window.addEventListener) anchor_node.addEventListener('focus',
gotFocus, false);
setTimeout(setFocus, 5000);
}
function gotFocus() {
alert('i got focus');
}
function setFocus() {
var anchor_node = document.getElementById('anchor_node');
anchor_node.focus();
}
</script>
</head>
<body onload="setListen()">
<a href="">Another Anchor</a>
<a href="" id="anchor_node">My Anchor</a>
</body>
</html>