Javascript字符代码是否与所有或某些浏览器兼容?

Javascript字符代码是否与所有或某些浏览器兼容?,javascript,jquery,Javascript,Jquery,我在互联网上发现了以下代码,当我看到这个解决方案时,我想知道这个关键代码是否适用于所有浏览器 var CalendarFilter = Backbone.View.extend({ // ... events: { 'click .filter': 'filter', 'keypress input[type=text]': 'filterOnEnter' }, filterOnEnter: function(e)

我在互联网上发现了以下代码,当我看到这个解决方案时,我想知道这个关键代码是否适用于所有浏览器

var CalendarFilter = Backbone.View.extend({
      // ...
      events: {
        'click .filter':  'filter',
        'keypress input[type=text]': 'filterOnEnter'
      },
      filterOnEnter: function(e) {
        if (e.keyCode != 13) return;
        this.filter(e);
      },
      filter: function(e) { /* ... */ });
      }
    });

只是一个疑问,谢谢。

当然可以。这在整个计算机上都是一样的。

键码13(换行符)在跨操作系统或跨浏览器兼容性方面没有问题。不用担心。

键代码是标准的,但最好也检查键代码
10
10
是“换行”的关键代码,
13
是“回车”的关键代码。这两者之间有一个历史性的区别(打字机需要发送两个信号,一个“换行”将纸张向上移动,另一个“回车”将打字的部分移到纸张的左侧)

例如,在Windows上的Chrome上,快速检查显示Ctrl+Enter发送keyCode
10
。有些nix系统可能使用keyCode
10
,但我无法确认。谷歌搜索显示。可能还有其他情况


有些系统使用其中一种表示换行符,有些系统使用另一种表示换行符(我上次检查时,Windows使用了两者的组合),但在现代世界中,它们实际上都意味着回车,所以覆盖两个基数不会有什么坏处。

首先,
charCode
不是
keyCode
charCode
遵循ascii设置,而
keyCode
是键的特定索引。。在这里可以看到两者之间的不同值:

charCode
keyCode
之间的一个主要区别是,在某些浏览器中,当被引用时,[0]通常没有任何值

有趣的是,onkeypress似乎返回了,而onkeypup和onkeypdown则按预期工作,因此在检测
keyCode
值时可能会出现一些问题。你可以在这里测试一下 -其他参考:

keyCode
charCode
哪个是
,但是,
keyCode
模型仍然有传统的支持。坚实的跨浏览器/平台支持是独立于键盘布局的,因此是“虚拟的”

除固定虚拟钥匙码外,其他虚拟钥匙码似乎也在各供应商之间一致实施:

jQuery使用自己的
keyCode
/
charCode
事件对象属性:
.which
,它试图统一
keyCode
charCode
。并支持
keyCode
值-

简而言之,您的特定的
keyCode
:“13”应该适用于大多数支持javascript的浏览器,因为它是一个固定的虚拟keyCode,并且与所有浏览器和平台一致