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

Javascript 在直接声明的HTML事件标记中获取事件对象,javascript,html,events,Javascript,Html,Events,假设我有这样一个输入元素: <input type="text" id="123"> document.getElementById("123").onkeydown = function(e) { console.log(e.keyCode); }; <input type="text" id="123" onkeydown="console.log(e.keyCode);"> 但是如果我想直接在HTML中执行,比如: <input type="te

假设我有这样一个输入元素:

<input type="text" id="123">
document.getElementById("123").onkeydown = function(e) {
    console.log(e.keyCode);
};
<input type="text" id="123" onkeydown="console.log(e.keyCode);">
但是如果我想直接在HTML中执行,比如:

<input type="text" id="123">
document.getElementById("123").onkeydown = function(e) {
    console.log(e.keyCode);
};
<input type="text" id="123" onkeydown="console.log(e.keyCode);">
如果要直接在HTML文档中设置事件,如何捕获e变量?

您可以使用window.event对象

e、 g

事实上,您甚至可以省略window。

您可以使用window.event对象

e、 g


事实上,您甚至可以省略窗口。

第一个选项有什么问题?@Erik JanWestendorp事实上,它使我的代码更加清晰,因为我只需要一行代码就可以完成该部分。@BelowtheRadar什么?xD@Murplyx以下操作也应该有效,onkeydown=javscript:console.logevent.keyCode@安东尼:这是多余的。这是在hrefs中使用的。第一个选项有什么问题?@Erik JanWestendorp事实上,它使我的代码更加清晰,因为我只需要一行代码就可以完成该部分。@BelowtheRadar什么?xD@Murplyx以下操作也应该有效,onkeydown=javscript:console.logevent.keyCode@安东尼:这是多余的。是的,这是一个完美的答案。因为它是窗口,我可以只写event.keyCode而不是window.event.keyCode?很好的呼叫@nicael。。。我想我的回答会更详细,但两者都有效!!是的,这是一个完美的答案。既然它是窗口,我可以只写event.keyCode而不是window.event.keyCode?很好的呼叫@nicael。。。我想我的回答会更详细,但两者都有效!!