在直接声明的HTML事件标记中获取事件对象

sup*_*per 1 html javascript events

所以我想说我有一个像这样的输入元素:

<input type="text" id="123">
Run Code Online (Sandbox Code Playgroud)

现在如果我在哪里为keydown添加一个事件监听器,我可以这样做:

document.getElementById("123").onkeydown = function(e) {
    console.log(e.keyCode);
};
Run Code Online (Sandbox Code Playgroud)

但是,如果我想直接在HTML中进行,如下所示:

<input type="text" id="123" onkeydown="console.log(e.keyCode);">
Run Code Online (Sandbox Code Playgroud)

我会收到这个错误:

Uncaught ReferenceError: e is not defined
Run Code Online (Sandbox Code Playgroud)

e如果我想直接在HTML文档中设置事件,如何捕获变量?

小智 5

您可以使用window.event对象.

例如

<input type="text" id="123" onkeydown="console.log(window.event.keyCode);">
Run Code Online (Sandbox Code Playgroud)

(事实上​​,你甚至可以省略window.)