JavaScript:捕获Onkeyup事件只能运行一次

时间:2013-10-17 14:32:18

标签: javascript key-events

我正在尝试编写一个可以捕获onkeyup事件的网页。

每次使用document.write("...");打印密钥代码。

然而它只能工作一次,第二次使用它时,窗口不会更新。

以下是代码:

document.onkeyup = function checkKeys(event) {
    var keyCode = event.which || event.keyCode;
    document.write(keyCode);
};

为什么这只能抓住一次事件?

2 个答案:

答案 0 :(得分:3)

Don't use document.write()。它正在擦除页面,以及onkeyup处理程序。在页面上创建一个元素并更新元素的内容。

document.onkeyup = function checkKeys(event) {
    var keyCode = event.which || event.keyCode;
    document.getElementById( 'results' ).innerText = keyCode;
};

HTML:

<div id="results"></div>

答案 1 :(得分:2)

document.write(keyCode);每次都使用新的密钥代码覆盖页面,您需要附加到文档,最好是页面上的div:

<div id="keyupDiv"></div>

document.getElementById("keyupDiv").innerHTML += keyCode;