我知道它非常简单,但为什么这些代码不会在按键上发出警报?
尝试使用Chrome和Firefox。
<html>
<head></head>
<body style="height: 100%; margin: 0px; padding: 0px;">
<div style="height: 100%;" id="main">sds</div>
<script>
window.onload = function()
{
var m = document.getElementById("main");
m.onkeydown = function(event) { alert("keydown!"); };
m.focus();
};
</script>
</body>
</html>
感谢
答案 0 :(得分:2)
除非是<input>
字段,否则不应该抓住元素上的按键。将main
替换为正文:
var m = document.getElementsByTagName("BODY")[0];
这将捕获页面上的所有击键,除非输入字段上有嵌套的处理程序。
您遇到的问题是因为事件冒泡/滴漏和输入焦点。主要不是“专注”,因此它不会触发任何键盘事件。
相反,当没有文本字段被聚焦而没有进行文本选择时,正文被隐含地“聚焦”。