JavaScript:如何清除自定义键盘映射并使用默认键盘映射

JavaScript:如何清除自定义键盘映射并使用默认键盘映射,javascript,php,css,html,web-applications,Javascript,Php,Css,Html,Web Applications,在我的web应用程序中,我定义了自己的键盘事件处理程序,并覆盖了一些默认键映射: document.onkeydown = function(eventParam) { var keycode; keycode = eventParam.which; // detect ESC key if (keycode == 27) { //close the window

在我的web应用程序中,我定义了自己的键盘事件处理程序,并覆盖了一些默认键映射:

document.onkeydown = function(eventParam)
    {
        var keycode;
        keycode = eventParam.which;

        // detect ESC key
        if (keycode == 27)
        {
            //close the window
            LightboxFileInfo.close();
        }

        return true;
    };
然而,在我的web应用程序的另一点上,我想清除我的自定义密钥映射,并再次使用默认的密钥映射。这是我的问题。你能告诉我怎么做吗?如何清除所有键盘映射并再次使用默认映射而不重新启动web应用程序

基本上,我的web应用程序有许多窗口。窗户是灯箱。对于每个窗口/灯箱,我对相同的键使用不同的功能。请记住,我有一个web应用程序,而不是一个网站。这意味着,一切都发生在一个网页/JavaScript文档中,我通过前面提到的灯箱显示不同的窗口,而不是不同的.html/.php文件

如果我需要在更改默认键盘映射之前保存它们,那么可以。你能告诉我怎么做吗?我的JavaScript知识到此为止。当然,我在寻找最简单的解决方案

我正在寻找一个解决方案,使用:

  • JavaScript
我不使用jQuery,只使用普通JavaScript

除此之外,我使用:

  • HTML 5
  • CSS 3
  • PHP 5.5.8
  • MySQL 5.6.15
  • Apache 2.4.7

由于您没有使用
eventParam.preventDefault()禁用默认行为,因此提前感谢您,通常的默认值首先也应该起作用。但是要禁止调用您自己的功能,您只需使用空函数覆盖处理程序函数

document.onkeydown = function() { };

您好,非常感谢您的回答。换句话说,如果我定义了自己的处理函数,这并不意味着我禁用了默认的处理函数。回答得很好,谢谢+1.当我有
eventParam.preventDefault()时,您有什么建议吗已定义。我在代码的某些地方定义了这个函数。我还不知道,它们是否也会影响键盘映射。让我们澄清一下默认值的含义:例如,如果您有表单,并点击
Enter
,则默认行为是提交表单。如果您为按键绑定自己的处理程序,并调用
e.preventDefault()
,则不会提交表单。当然,这可以根据键代码进行,例如,仅针对退格防止默认行为。但是默认的行为将永远不会被阻止,如果你像我在回答中建议的那样删除整个处理程序,那么你就可以继续使用默认的行为而不被阻止。完美而清晰的回答。非常感谢你。我没有关于这个主题的任何其他问题,因此我将此答案标记为已接受的答案。祝你今天愉快+1.