【发布时间】:2014-04-05 10:22:32
【问题描述】:
当 FocusOut 事件引发时,如何知道哪个元素获得焦点?
正确的方法似乎是使用事件的 relatedTarget 属性。但是,这似乎不适用于所有浏览器:
- 在谷歌浏览器中,它可以工作
- 在 Firefox 和 Internet Explorer 中,relatedTarget 为空
- 在 Safari 中,relatedTarget 属性甚至不存在
我找到了一种仅在 IE 中有效的解决方法(使用 document.activeElement),但我想知道是否没有一个已被证明适用于所有主要浏览器的通用解决方案。
虽然我可以找到类似的问题和答案,但我还没有找到任何真正适用于所有浏览器的解决方案。
编辑:下面的例子说明了我的意思。
代码:
document.getElementById('text1').addEventListener('focusout', function(e) {
// At this point, I want to know which element is receiving the focus (i.e. text2)
console.log(e.relatedTarget); // works in Chrome
console.log(document.activeElement); // works in IE
// both do not work in Firefox or Safari
});
<input id="text1" type="text" value="first" />
<input id="text2" type="text" value="second" />
【问题讨论】:
标签: javascript focusout