javascript - 了解Java代码

我希望每次触发事件时(即按下向下键时)下面的代码都会增加变量counter,但是不会。该代码仅递增一次,即使按向下键也无任何反应。

你能解释为什么会这样吗?

当事件触发时,firefox的选项卡还会继续显示加载圆圈,这是为什么?
此外,事件监听器是否有生存期,即到达时是否过期?



<html>
<head>
<body>

<script>
var counter=0;
addEventListener("keydown",function(){
counter++;
document.write(counter);
});
</script>
</body>
</html>

最佳答案

document.write()实际上会覆盖页面的所有当前内容,因此您的代码将只运行一次,而之后的HTML代码将仅包含一个字符“ 1”。这意味着您的DOM将被销毁,并且不再有JavaScript代码可以运行。

您可能想要做的是更新特定元素的内容,而不是覆盖所有文档。