我厌倦了编写一个用javascript检查密钥代码的函数。它适用于Firefox,但不适用于IE。有谁知道我的代码出了什么问题?有关详细信息,请参阅以下代码。
function textCheck(e)
{
var e = window.event || e
alert("CharCode value: "+e.charCode)
alert("Character: "+String.fromCharCode(e.charCode))
}
答案 0 :(得分:3)
切换第一行代码:
...
var e = e || window.event;
...
看看是否有帮助。
此外,如果是unicode角色,请尝试以下内容:
function displayunicode(e) {
var unicode=e.keyCode? e.keyCode : e.charCode
alert(unicode)
}
如果您正在处理keydown
而不是keypress
,那么情况会变得复杂一些......请参阅:http://unixpapa.com/js/key.html
答案 1 :(得分:1)
keyCode和charCode值在不同浏览器中的行为略有不同,并为各种事件返回不同的值。特别是旧版本的IE不支持charCode。我的第一个建议是使用像jQuery这样的工具来处理跨浏览器的键值的规范化。使用jQuery,您可以使用事件对象上的e.which属性来获取规范化值。
另一件事是使用密钥代码检查器来比较每个浏览器为每个事件返回的值。我构建了一个方便的在线工具来实现这一点,并且发现每个事件的所有密钥代码/字符代码一目了然非常有用:
http://www.west-wind.com/WestwindWebToolkit/samples/Ajax/html5andCss3/keycodechecker.aspx
让您可以轻松地尝试不同的组合键,并了解它们在不同浏览器上的比较情况。 jQuery的哪个和keypress往往是最一致的。