javascript - safari 上的 event.keyCode 和 charCode 为德语特殊标志提供 "undefined"

标签 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 上)对于某些特殊字符(如德语 ä、ü、ß 等)给出的代码为“未定义”(因此它不会“执行操作”)。所以我无法检查它是否是箭头。我不确定是否应该添加“or (typeof(code) == 'undefined') ”。你能帮我决定我应该做什么吗?

最佳答案

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

关于javascript - safari 上的 event.keyCode 和 charCode 为德语特殊标志提供 "undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7245093/

相关文章:

debugging - Xcode 4 final - 设备(ipad)上的断点不起作用

javascript - 如何将元素锚定到窗口的左侧

javascript - 使用 x-editable 切换 select2

javascript - 再次单击时 Bootstrap 警报不起作用

javascript - AngularJS 谷歌地图点击事件不会在 ios 设备 ipad 和 iphone 中触发

ios - 如何在ipad应用程序的后台线程中显示UIAlertView?

javascript - 多元素响应轮播

javascript - 如何在 JavaScript 中复制数组的值并将其推送到相同的数组?

android - 移动分析中的事件持续时间?

xcode - 居中 UIView