正如你可能知道的那樣,有一個相對簡單的方法,或多或少地可靠,detect whether Caps Lock is on,特別是當用戶開始輸入密碼字段時。但是,IE10自動支持此功能是一個不爲人知的事實,無需任何其他編碼(source,direct link to screenshot和a simple demo)。因此,現在我面臨一個問題,因爲如果我添加一個類似的Javascript功能,IE10用戶會看到兩個帶有警告的「泡泡」,一個是由我的腳本創建的,另一個是由他們的瀏覽器創建的;這可能看起來很醜,甚至會令人困惑。這就是爲什麼我正在尋找一種解決方案來檢測瀏覽器是否具有內置的功能;我希望它能觸發某些事件或改變一些屬性,但我還沒有發現任何這樣的事情。有沒有辦法檢測IE10的「Caps Lock is on」功能?
我可能只是在用戶代理字符串中尋找Trident/6.0
,但我寧願避免瀏覽器檢測;如果其他瀏覽器添加了類似的功能,它可能還需要一些代碼維護。
如果沒有可靠的解決方案,我會要求IE團隊添加「caps-lock-on-on feature」檢測功能,也許還需要HTML規範的編輯來要求供應商執行此操作。
沒有爲揭露這種默認行爲還沒有標準。所以沒有辦法進行功能測試,所以用戶代理匹配是唯一的方法。或者你可以嘗試將你的泡泡放在默認泡泡的下方(假設瀏覽器泡泡始終位於頂部),所以它被阻止並且不可見 – Gerben
@Gerben感謝您的評論。看起來你的總結可以很好地描述當前的狀態和可能的解決方案,可以隨意添加你的答案作爲答案;如果沒有出現任何魔法解決方案,我可能會將其設置爲已接受。 – duri
設置包含窗體上的'novalidate'屬性是否對氣球行爲有任何影響?該文檔似乎表明,這將禁用內置的驗證功能 - 雖然目前還不清楚這是表單提交時還是禁止內聯檢查元素... – Fraser