首页  >  文章  >  web前端  >  `.keyCode` 与 `.which`:哪个是最好的按键事件按键标识符?

`.keyCode` 与 `.which`:哪个是最好的按键事件按键标识符?

DDD
DDD原创
2024-10-30 06:49:28622浏览

  `.keyCode` vs. `.which`: Which is the Best Keypress Event Key Identifier?

按键事件按键标识:.keyCode 与 .which

在处理按键事件时,开发人员经常面临使用 .keyCode 和 .keyCode 之间的选择.确定击键。虽然两者都用于识别按键,但存在细微的差异和跨浏览器兼容性考虑。

历史上,.keyCode 被广泛用于检测按键,但其支持在不同浏览器之间不一致。有些使用字符的 Unicode 代码,而另一些则使用特定于平台的值。这种不一致可能会导致跨浏览器应用程序出现意外行为。

另一方面,.which 是一种更加规范化的方法。它返回一个代表密钥逻辑标识符的标准化值,无论浏览器或平台如何。但是,旧版浏览器可能不支持它。

为了解决潜在的跨浏览器问题,jQuery 通过始终使用 .which 来标准化按键行为。它将来自不同浏览器的非标准化值转换为一致的格式,使其成为跨浏览器兼容性的可靠选择。

如果使用普通 JavaScript,开发人员可以通过使用这两个属性的组合来确保浏览器兼容性,如下所示如下:

<code class="js">var key = 'which' in e ? e.which : e.keyCode;</code>

此代码检查 .which 是否在事件对象中定义;如果是这样,它就使用它的值。否则,它会回退到使用 .keyCode。

或者,可以使用更简洁的方法:

<code class="js">var key = e.which || e.keyCode || 0;</code>

此表达式通过将 .which 恢复为 0 来处理 .which 为 0 的可能性最后的值,利用 JavaScript 强大的逻辑或运算符 (||)。

以上是`.keyCode` 与 `.which`:哪个是最好的按键事件按键标识符?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn