2012-09-18 53 views
0

我希望能够检测任意元素何时在JavaScript中放松焦点,因此我可以构建类似于jEdit的内联编辑工具。我不能依赖这个库的jQuery,所以我需要一个本地方法来做到这一点。在JavaScript中检测焦点丢失

我看着onblur,这似乎是正确的,但MDN有一个说明它可能是IE特定的注释?

与此相反MSIE - 在几乎所有种类的元素收到 模糊事件 - 几乎所有种类的Gecko浏览元素不与该事件工作 。

哪些元素将不会与此工作,有没有更好的方法来检测这种事情?

如果模糊效果,https://developer.mozilla.org/en-US/docs/DOM/element.onblur的文档是否应该更改?

+0

http://stackoverflow.com/questions/1529374/html-onchange-onblur-compatibility –

+0

发布一些代码与您遇到的问题。 –

回答

1

您可以在body元素上使用onfocusoutonbluronfocusout之间的区别在于后者冒泡,因此您不必为每个需要的节点安装它。

onfocusout不是跨浏览器,是IE的功能,而不是标准。我不知道在当前的浏览器中设置onblur有什么问题,只是它不起泡。

只有在模糊发生时才会收到通知的唯一方法是在您看到更改时轮询document.activeElement并触发事件。请参阅Detect which form input has focus using JavaScript or jQuery

+0

那么没有冒泡的版本可以使用IE吗? – ForbesLindesay

+0

在所有浏览器中都不可靠 –