Does anyone know of crossbrowser equivalent of explicitOriginalTarget event parameter? This parameter is Mozilla specific and it gives me the element that caused the blur. L
For IE you can use srcElement
, and forced it.
if( !selectTag.explicitOriginalTarget )
selectTag.explicitOriginalTarget = selectTag.srcElement;
Looks like it is more designed for extension writers than for Web design...
I would watch the blur/focus events on both targets (or potential targets) and share their information.
The exact implementation might depend on the purpose, actually.
IE srcElement
does not contain the same element as FF explicitOriginalTarget
. It's easy to see this: if you have a button field with onClick
action and a text field with onChange
action, change the text field and move the cursor directly to the button and click it. At that point the IE srcElement
will be the text field, but the explicitOriginalTarget
will be the button field. For IE, you can get the x,y coordinates of the mouse click from the event.x
and event.y
properties.
Unfortunately, the Chrome browser provides neither the explicitOriginalTarget
nor the mouse coordinates for the click. You are left to your own devices to figure out where the onChange
event was fired from. To do this, judicious use of mousemove
and mouseout
events can provide mouse tracking which can then be inspected in the onChange
handler.
There is no equivalent to explicitOriginalTarget in any of the other than Gecko-based browsers. In Gecko this is an internal property and it is not supposed to be used by an application developer (maybe by XBL binding writers).
The rough equivalent for Mozilla's .explicitOriginalTarget in IE is document.activeElement. I say rough equivalent because it will sometimes return a slightly different level in the DOM node tree depending on your circumstance, but it's still a useful tool. Unfortunately I'm still looking for a Google Chrome equivalent.
2015 update... you can use event.relatedTarget on Chrome. Such a basic thing, hopefully the other browsers will follow...