2012-09-18 66 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

在所有瀏覽器中都不可靠 –