safari上的event.keyCode和charCode为德国特殊标志提供了“undefined”

时间:2011-08-30 14:46:37

标签: javascript ipad

我在keyUp上运行该功能:

function onKeyUpHandler(e) {
if(!e) var e = window.event;
var code;
if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    else if (e.charCode) code = e.charCode;
if (code < 37 || code > 40) { // not arrows
    //do Stuff;
}

它适用于大多数浏览器中的所有字符,但Safari(特别是在iPad上)为某些特殊字符(例如德语ä,ü,ß等)提供代码为“未定义”(因此它不“做东西”)。所以我无法检查它是否是箭头。我不确定是否应该添加“或(typeof(code)=='undefined')”。你能帮我决定我该怎么做吗?

1 个答案:

答案 0 :(得分:3)

keyCodekeyupkeydown个事件中唯一需要的属性。它适用于所有主流浏览器,包括Safari。这是一个更好的功能版本。我不确定是否还有其他问题;如果有,请告诉我。

function onKeyUpHandler(e) {
    e = e || window.event;
    var code = e.keyCode;
    if (code < 37 || code > 40) { // not arrows
        //do Stuff;
    }
}

以下是我认为关于JavaScript关键事件的最终页面:http://unixpapa.com/js/key.html