正如你可能知道的那样,有一个相对简单的方法,或多或少地可靠,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