javascript - 覆盖 Chrome 中的功能键默认操作

标签 javascript jquery keyboard-events

我正在 Chrome 中构建网络应用程序,我需要一些快捷键并想使用功能键。

但是,F1触发帮助窗口,F3触发页面搜索,F5刷新等等。 我想否决这些键,因为它们在我的上下文中没有用。

但是……我无法阻止默认值被触发。 这是我的代码:

$(document).keyup(function(e) {

    // GET KEYCODE
    var keyCode = e.keyCode;                            //alert(keyCode);

    // CHECK KEYBOARD CONTEXT
    var keyboardContext = $('#keyboard-context').attr('data-context');

    // JS KEYCODES FOR FUNCTION KEYS
    var functionKeys = new Array(112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123);
    var keyNames = new Array('F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'F10', 'F11', 'F12');

    // CONVERT KEYCODE INTO KEYNAME, FOR EASE OF BINDING IN DOM
    for (var i = 0; i < functionKeys.length; i++) { if (functionKeys[i] === keyCode) { keyCode = keyNames[i]; } }

    // MAKE SURE THAT THE QUICK LAUNCH SHORTCUT KEY, ALWAYS LAUNCHES THE QUICKNAV
    if (keyCode === 'F1') {
        $('.keyboard-shortcut').each(function() {
            if ($(this).data('shortcut-key') === keyCode && $(this).hasClass('load-small-content') && $(this).attr('data-keyboard-context') === 'launch-quick-nav') {
                loadSmallContent($(this).data('load-from'));
            }
        });

    }

    // PREVENT DEFAULT FOR FUNCTION KEYS
    if (functionKeys.indexOf(keyCode) > -1) {
        e.preventDefault();
        e.stopPropagation();
        return false;
    }
});

我能做些什么来防止例如F1 从打开帮助页面?

最佳答案

我想出了一个解决方案。以下内容应该只包含在 .js 文件中的任何位置...

function disableFunctionKeys(e) {
    var functionKeys = new Array(112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 123);
    if (functionKeys.indexOf(e.keyCode) > -1 || functionKeys.indexOf(e.which) > -1) {
        e.preventDefault();
    }
};

$(document).ready(function() {
    $(document).on('keydown', disableFunctionKeys);
});

为了防止除 F 键之外的其他键,只需将 JS 键码放入数组 :)

关于javascript - 覆盖 Chrome 中的功能键默认操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16622903/

相关文章:

javascript - 如何防止在 jquery 对话框表单中输入数据之前执行 javascript 代码

python - win32api & pyhook - 如何获取用户的打字语言?

c - allegro 中按键事件的错误

javascript - Javascript RegEx 查询

提交表单时的 Javascript 转换?

javascript - 在 React Native 中使用 map 访问嵌套的 json

javascript - 使用 Javascript/jQuery 和 CSS 更改 PNG 颜色

javascript - iPad、JavaScript 字符代码和 shiftKey

javascript - 使用 Javascript 或 JQuery 设置等于窗口一半的 div 宽度,负 25px

Javascript 字符串.fromcharcode