我正在嘗試設置偵聽器,偵聽所有焦點事件。特別是我試圖傾聽任何時候輸入或文本框獲得焦點。每一些研究中,被廣泛接受的方式來實現這一目標是這樣的:Javascript:全局元素焦點偵聽器
document.body.onfocus = function(event) {
//Check the event.target for input/textbox
//Do something
};
但document.body.onfocus似乎不火,直到永遠。我想這可能是因爲該文件實際上並不曾獲得焦點,所以我嘗試:
document.body.focus();
要開始「設置」的焦點,不過這也不管用。
關於如何在所有輸入/文本框中收聽焦點事件而不事實上直接在元素上設置事件的任何想法?只有香草JavaScript請,我不使用框架。
每這裏接受的答案是一定的工作代碼:
var focusHandler = function(event) {
var type = event.target.nodeName.toLowerCase();
if(type == 'input' || type == 'textarea') {
//Do something
}
};
document.body.addEventListener('focus', focusHandler, true); //Non-IE
document.body.onfocusin = focusHandler; //IE
你在哪裏運行這段代碼?在'
'?或者''的某處?在''中運行代碼時,我不認爲'document.body'可用... ...不確定 – Ian 2013-04-08 14:41:12單獨的js文件。根本不在html中。 – ryandlf 2013-04-08 14:41:54
但是,您的HTML中包含的JS文件在哪裏? – Ian 2013-04-08 14:42:39