19

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

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

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

4

3 回答 3

13

msCapsLockWarningOff您可以通过检查自身属性的值来确定 IE 是否会显示自己的大写锁定警告document。此外,您可以打开和关闭它:

document.msCapsLockWarningOff = true;

小提琴: http: //jsfiddle.net/jonathansampson/mqcHA/1/
MSDN:msCapsLockWarningOff 属性

于 2012-06-06T01:31:11.543 回答
1

我建议您查看本教程 http: //www.upsdel​​l.com/BrowserNews/res_sniff.htm

你可以试试这样的

<!--[if gte IE 10]>
    <script type="text/javascript">
        var isTrulyIE = true;
    </script>
<![endif]-->

或 javascript 版本,用于检测和原型化浏览器版本

 this.isIE10 = (this.version == "10.0") || (this.ua.indexOf("trident/6") != -1);

你也可以试试微软定义的脚本来决定IE浏览器的版本 http://support.microsoft.com/kb/167820

于 2011-09-07T05:51:19.090 回答
-1

您可以捕获键盘事件并检测键,但无法确定大写锁定状态。

于 2011-08-11T18:01:22.210 回答