【问题标题】:Event global object in Firefox [duplicate]Firefox中的事件全局对象[重复]
【发布时间】: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 发明,现已弃用,但支持在各种浏览器中向后兼容。不要这样做。显式传递事件对象。

标签: javascript event-handling


【解决方案1】:

Firefox 的 KeyboardEvent() 期望事件传递给函数 试试这个

<input id="myinput" type="text" size="40" onkeydown="myFunction(event)">

function myFunction(event){
    if(typeof event === 'undefined')
    {
        event = window.event;
    }

console.log(event);

}

【讨论】:

    猜你喜欢
    • 2019-08-19
    • 1970-01-01
    • 2013-03-29
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多