Daniel
Daniel

Reputation: 3691

How to use relatedTarget (or equivalent) in IE?

Apparently IE (11) has an issue with relatedTarget, for example on blur events. Is there an alternative for IE to get the relatedTarget?

Here is an example that produces an error in IE: https://jsfiddle.net/rnyqy78m/

Upvotes: 10

Views: 8059

Answers (2)

christiansabor
christiansabor

Reputation: 321

It looks like IE11 sets document.activeElement to the next focused element before the blur event is called. So to handle blur correctly in all browsers including IE11 you could use something like

var target = evt.relatedTarget;
if (target === null) { target = document.activeElement; }

I adapted your fiddle to use this: https://jsfiddle.net/hukt0rhj/

Upvotes: 27

Shilly
Shilly

Reputation: 8589

If I look at this list: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/relatedTarget blur isn't included as having a standard secondary target. So I assume the secondary target on blur in chrome is non-standard.

If you replace blur by focusin or focusout, it also works for IE11 for me.

Upvotes: 14

Related Questions