在Javascript中,如何檢測文檔是否在直接對焦。通過直接重點,我的意思是你在文件上,但沒有表單元素的重點。檢測文檔是直接對焦
我在這裏要做的是與Stackoverflow的所見即所得編輯器相反。當焦點位於textarea上時,按Ctrl + B時,Stackoverflow加粗文本。我想在用戶沒有在頁面上填寫任何表單時執行命令。例如,SHIFT + N進入我的應用程序的下一步,但仍允許在表單textareas上寫入大寫N。
我使用原型框架,BTW。
在Javascript中,如何檢測文檔是否在直接對焦。通過直接重點,我的意思是你在文件上,但沒有表單元素的重點。檢測文檔是直接對焦
我在這裏要做的是與Stackoverflow的所見即所得編輯器相反。當焦點位於textarea上時,按Ctrl + B時,Stackoverflow加粗文本。我想在用戶沒有在頁面上填寫任何表單時執行命令。例如,SHIFT + N進入我的應用程序的下一步,但仍允許在表單textareas上寫入大寫N。
我使用原型框架,BTW。
有沒有必要跟蹤焦點,它是過於複雜的事情,並沒有通過常識氣味測試......如果你錯過了一個事件可能會出錯。
如果您觀察到頁面的根元素(document
或document.body
),那麼未明確停止的所有事件都會到達那裏,您將能夠過濾掉在表單元素上啓動的那些事件。
document.observe('keypress', function(event, element) {
if (event.findElement('input, select, textarea') == document) {
// No input was typed on.
}
});
這個例子沒有過濾掉錨,但可以通過添加a
到findElement
呼叫做容易。
爲什麼不使用全局JavaScript變量作爲標誌?
var isFocusedOnElement = false;
,併爲其分配的onfocus觸發所有的文本區域,輸入框,它更改爲true onfocus
,並onBlur
假。
然後,只要您遇到擊鍵,就可以檢查此標誌。