在内联事件处理程序中传递事件数据

rhi*_*ino 15 javascript events event-handling

我有一个<input>它有一个onkeydown内嵌的事件处理程序.在这个处理程序中,我想调用一个函数并向它传递一个特殊参数 - 事件数据.

当我想处理整个文档的事件(例如onmousemove)时,我使用以下代码:

document.onmousemove=function(e) {
// here I can make a good use of the 'e' variable,
// for example extract the mouse coordinates from it
}
Run Code Online (Sandbox Code Playgroud)

它有效(虽然我不知道e变量 - 事件数据来自哪里).
但是这次我只想使用<input>上面提到的功能.
我需要将事件数据传递给函数,以便获取按下的键的代码.我想在内联事件处理程序中执行此操作.我创建了一个函数:

function myfunc (e) {
    var evt=window.event?event:e;
    var code=evt.keyCode;
    alert (code);
}
Run Code Online (Sandbox Code Playgroud)

并尝试了所有这些方法:

<input onkeydown="myfunc(this)">

<input onkeydown="myfunc(this.onkeydown)">

<input onkeydown="myfunc(onkeydown)">

但是没有一个工作,警报窗口显示"未定义".
我在谷歌寻找解决我的问题的方法,但没有找到任何可以帮我解决的问题.

gbl*_*zex 23

<input onkeydown="myfunc(event)">

function myfunc (e) {
    e = e || window.event;
    var code = e.keyCode;
    alert (code);
}
Run Code Online (Sandbox Code Playgroud)