【发布时间】:2011-10-25 03:24:43
【问题描述】:
您可能知道,有一种相对简单的方法可以或多或少可靠地输入detect whether Caps Lock is on,尤其是当用户开始输入密码字段时。然而,IE10 自动支持此功能,无需任何额外编码(source、direct link to screenshot 和a simple demo),这是一个非常未知的事实。因此,现在我面临一个问题,因为如果我添加类似的 Javascript 功能,IE10 用户将看到两个带有警告的“气泡”,一个由我的脚本创建,一个由他们的浏览器创建;这可能看起来很难看,甚至令人困惑。这就是为什么我正在寻找一种解决方案来检测浏览器是否内置了此功能;我希望它会触发一些事件或更改一些属性,但我还没有找到这样的东西。
我可能只是在用户代理字符串中寻找Trident/6.0,但我宁愿避免浏览器检测;如果其他浏览器添加类似的功能,它可能还需要一些代码维护。
如果没有可靠的解决方案,我会要求 IE 团队添加“caps-lock-is-on feature”检测能力,并且可能还会要求 HTML 规范的编辑者要求供应商这样做。
【问题讨论】:
-
没有公开此默认行为的标准。所以没有办法进行功能测试,所以用户代理匹配是唯一的方法。或者您可以尝试将您的气泡定位在默认气泡下方(假设浏览器气泡始终在顶部),因此它被阻止并且不“可见”
-
@Gerben 感谢您的评论。您的摘要似乎很好地描述了当前状态和可能的解决方案,请随时添加您的回复作为答案;如果没有出现任何神奇的解决方案,我可能会将其设置为已接受。
-
在包含表单上设置
novalidate属性对气球行为有任何影响吗?该文档似乎表明这会禁用内置的验证功能 - 尽管目前尚不清楚这是提交表单时还是抑制对元素的内联检查......
标签: javascript internet-explorer-10 capslock