如何将onkeydown添加到身体?

时间:2013-07-11 12:27:38

标签: javascript

在我的index.html中,我有这段代码。 我需要在Main.onLoad()中向该主体添加onkeydown事件。

知道该怎么做吗?

<body id="body" 
    onload="Main.onLoad();" 
    onunload="Main.unload();" 
    onmousedown="Main.mouseDown();"
>

<body id="body" 
    onload="Main.onLoad();" 
    onkeydown="TVA.keyDown(event);" 
    onunload="Main.unload();" 
    onmousedown="Main.mouseDown();"
>

3 个答案:

答案 0 :(得分:4)

在Javascript块中,尝试使用window.onkeydown MDN )。

您还可以使用document.onkeydowndocument.body.onkeydown

以下是您的示例:

的JavaScript

document.body.onkeydown = function(e){
    alert(String.fromCharCode(e.keyCode)+" --> "+e.keyCode);
};

Live Demo

上面的代码可以放在任何有效的JavaScript块中(例如Main.onLoad()函数)。

答案 1 :(得分:0)

你可以像这样附加听众: 您可以传递函数或只是在代码中调用匿名函数。

document.body.addEventListener('keydown',Main.onLoad);

传递给控制台时似乎可以处理堆栈溢出。

答案 2 :(得分:0)

通常onkeydown可以附加到可以获得焦点的元素上。在某些浏览器中,您可以专注于document.body,但您不能依赖它。 window是可以获得关注的元素之一。

您可以尝试将以下代码放入HTML代码的head部分, TVA定义后

window.onkeydown = TVA.keyDown;

或使用addEventListener()时:

window.addEventListener('keydown', TVA.keyDown, false);