1

我厌倦了编写一个用javascript检查关键代码的函数。它适用于 Firefox,但不适用于 IE。有谁知道我的代码出了什么问题?请参阅下面的代码以获取更多详细信息。

function textCheck(e)
{
 var e = window.event || e
 alert("CharCode value: "+e.charCode)
 alert("Character: "+String.fromCharCode(e.charCode))
}
4

2 回答 2

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

于 2009-05-08T01:07:01.047 回答
1

keyCode 和 charCode 值在不同浏览器中的行为略有不同,并为各种事件返回不同的值。特别是旧版本的 IE 不支持 charCode。我的第一个建议是使用像 jQuery 这样的工具来处理跨浏览器的键值的规范化。使用 jQuery,您可以使用事件对象上的 e.which 属性来获取标准化值。

另一件事是使用关键代码检查器来比较每个浏览器的每个事件返回的值。我构建了一个方便的在线工具来执行此操作,并发现一目了然地显示每个事件的所有键码/字符码非常有用:

http://www.west-wind.com/WestwindWebToolkit/samples/Ajax/html5andCss3/keycodechecker.aspx

使试验不同的组合键并查看它们在不同浏览器上的比较变得非常容易。jQuery 的 which 和 keypress 往往是最一致的。

于 2012-02-13T19:50:10.263 回答