【问题标题】:window.event alternative in FirefoxFirefox 中的 window.event 替代方案
【发布时间】:2014-04-02 13:33:17
【问题描述】:

我看到 window.eventevent 在 Firefox 中不起作用,所以我需要替代方法。我不想设置任何 HTML 属性,只是 Javascript。 我在这个函数中,我想从这里获取鼠标坐标:

document.onmouseover = function(){
    var mouseX = event.clientX;
    var mouseY = event.clientY;
}

显然这在 Firefox 中不起作用,所以我想知道该怎么做。

【问题讨论】:

  • 为什么这个问题被标记了?这是一个合理的编程问题,答案很简单。

标签: javascript firefox


【解决方案1】:

这是您可以在任何地方的示例中找到的典型方法。

document.onmouseover = function(event) {
    event = event || window.event;

    var mouseX = event.clientX;
    var mouseY = event.clientY;
}

检索event 对象的W3C 标准方法是通过第一个函数参数。旧版 IE 不支持这种方法,所以 event 将是 undefined。在这种情况下,|| 运算符让我们可以获取 window.event 对象。

【讨论】:

    【解决方案2】:

    window.event(您所指的)是一个全局对象,并非在所有浏览器中都可用。

    document.addEventListener("mouseover", function(evt){
        var mouseX = evt.clientX;
        var mouseY = evt.clientY;
    }, false);
    

    【讨论】:

    • 很好,但该代码在 Internet Explorer 8 或更低版本(提问者可能必须支持)上无法运行。
    • @FrédéricHamidi 这是真的。我有点“盲目”,只回答 Firefox 特定的问题。 OP:查看 window.attachEvent (msdn.microsoft.com/en-us/library/ie/ms536343(v=vs.85).aspx) 以获得旧版 IE 支持。
    • 答案对问题的特殊性很好,不过我会在答案中添加 IE8 评论
    • @SmaxSmaxović:太慢了?你是怎么得出这个结论的?
    猜你喜欢
    • 2018-04-03
    • 1970-01-01
    • 2011-11-26
    • 2015-04-17
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多