首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法检测IE10的"Caps Lock Is on“功能?

有没有办法检测IE10的"Caps Lock Is on“功能?
EN

Stack Overflow用户
提问于 2011-08-12 00:05:01
回答 3查看 3.5K关注 0票数 19

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

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-06 09:31:12

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

document.msCapsLockWarningOff = true;

小提琴:http://jsfiddle.net/jonathansampson/mqcHA/1/

MSDN:msCapsLockWarningOff property

票数 13
EN

Stack Overflow用户

发布于 2011-09-07 13:51:19

我建议您查看此教程http://www.upsdell.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

票数 1
EN

Stack Overflow用户

发布于 2011-08-12 02:01:22

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7029152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档