6

In my index.html I have this code. I would need to add onkeydown event to that body in Main.onLoad().

Any idea how to do it?

<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();"
>
4

3 回答 3

6

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

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

这是一个例子:

JavaScript

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

现场演示

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

于 2013-07-11T12:44:21.380 回答
0

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

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

window.onkeydown = TVA.keyDown;

或使用时addEventListener()

window.addEventListener('keydown', TVA.keyDown, false);
于 2013-07-11T13:09:42.473 回答
0

您可以像这样附加侦听器:您可以传递一个函数或简单地在代码中调用一个匿名函数。

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

传递给控制台时似乎可以解决堆栈溢出问题。

于 2013-07-11T12:35:48.133 回答