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发送keyCode10
。有些nix系统可能使用keyCode10
,但我无法确认。谷歌搜索显示。可能还有其他情况
有些系统使用其中一种表示换行符,有些系统使用另一种表示换行符(我上次检查时,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,并且与所有浏览器和平台一致