Javascript 有没有办法检测IE10';s";Caps Lock已打开;特征?

Javascript 有没有办法检测IE10';s";Caps Lock已打开;特征?,javascript,internet-explorer-10,capslock,Javascript,Internet Explorer 10,Capslock,正如您可能知道的,有一种相对简单的方法,可以或多或少地可靠地输入密码,特别是当用户开始在密码字段中键入密码时。然而,IE10自动支持此功能,而不需要任何额外的编码(,和),这是一个相当未知的事实。因此,现在我面临一个问题,因为如果我添加类似的Javascript功能,IE10用户将看到两个带有警告的“气泡”,一个由我的脚本创建,另一个由他们的浏览器创建;这可能看起来很难看,甚至令人困惑。这就是为什么我在寻找一个解决方案,如何检测浏览器是否内置了此功能;我希望它能触发一些事件或改变一些属性,但我还

正如您可能知道的,有一种相对简单的方法,可以或多或少地可靠地输入密码,特别是当用户开始在密码字段中键入密码时。然而,IE10自动支持此功能,而不需要任何额外的编码(,和),这是一个相当未知的事实。因此,现在我面临一个问题,因为如果我添加类似的Javascript功能,IE10用户将看到两个带有警告的“气泡”,一个由我的脚本创建,另一个由他们的浏览器创建;这可能看起来很难看,甚至令人困惑。这就是为什么我在寻找一个解决方案,如何检测浏览器是否内置了此功能;我希望它能触发一些事件或改变一些属性,但我还没有发现类似的情况

我可能只是在用户代理字符串中查找
Trident/6.0
,但我更希望避免浏览器检测;如果其他浏览器添加类似的功能,它可能还需要一些代码维护


如果没有可靠的解决方案,我将要求IE团队添加“caps lock is on feature”检测功能,可能还有HTML规范的编辑器来要求供应商这样做。

您可以捕获键盘事件并检测按键,但无法确定caps lock状态。

我建议您查看本教程

你可以试试这样的

<!--[if gte IE 10]>
    <script type="text/javascript">
        var isTrulyIE = true;
    </script>
<![endif]-->
您也可以尝试使用microsoft定义的脚本来确定IE浏览器版本

您可以通过检查
文档
本身上的
msCapsLockWarningOff
属性的值来确定IE是否将显示自己的caps lock警告。此外,您还可以打开和关闭:

document.msCapsLockWarningOff = true;
小提琴:

MSDN:

没有公开此默认行为的标准。所以无法进行功能测试,所以用户代理匹配是唯一的方法。或者你可以尝试将你的气泡定位在默认气泡下(假设浏览器气泡始终位于顶部),这样它就被阻止并且不“可见”@Gerben谢谢你的评论。由于您的摘要似乎很好地描述了当前状态和可能的解决方案,请随意添加您的回答作为答案;如果没有出现任何神奇的解决方案,我可能会将其设置为已接受。在包含表单上设置
novalidate
属性是否对气球行为有任何影响?。文档似乎表明这会禁用内置的验证功能-尽管不清楚这是在表单提交时还是在元素上禁止内联检查…感谢您对回答此问题感兴趣。然而,你似乎误解了这个问题;请仔细阅读。我在检测Caps Lock方面没有问题,我正在寻找一种方法来确定是向用户显示警告,还是浏览器自己显示警告。我听说IE10不再支持条件注释?然后我建议您尝试trident/6的javascript,就像他们在这里做得很好一样,我希望微软会增加这样的属性。
document.msCapsLockWarningOff = true;