【发布时间】:2016-09-18 23:05:43
【问题描述】:
考虑以下代码:
<input id="myinput" type="text" size="40" onkeydown="myFunction()">
function myFunction() {
console.log(event);
}
event 是一个全局对象,在事件处理程序 myFunction 中是已知的。但是,Firefox 会抛出错误:event is not defined,而 Chrome 和 IE 输出 KeyboardEvent {...}。这是我遇到的最疯狂的事情之一。有什么满意的解释吗?
【问题讨论】:
-
请试试这个:`function myFunction(event) {console.log(event);}`这行吗?
-
event是一个全局变量是一个糟糕的 IE 发明,现已弃用,但支持在各种浏览器中向后兼容。不要这样做。显式传递事件对象。