输入错误:firefox中关于javascript的事件未定义

时间:2014-05-27 18:23:25

标签: javascript events undefined

这是事情。 我需要打开一个新选项卡并在新打开的选项卡上绘制一些内容。

我添加了类似的事件监听器:

div3.addEventListerner("onmousedown",MouseDown(NewWindow.event),false);

但是当页面加载时,firefox会抛出有关MouseDown()函数中代码的错误。移动鼠标时不会抛出错误。

function MouseDown(event)
{
if(!event)
    {
    var event = window.event;
    }

X = event.pageX;//Throw error here.
Y = event.pageY;

所以,有人知道如何解决这个问题?????

2 个答案:

答案 0 :(得分:1)

var移除var event = window.event。变量已经被声明(作为参数),因此用var重新声明它只会导致问题。

具体而言,由于吊装,以下是您的代码归结为:

function MouseDown(event) {
    var event; // = undefined
    if( !event) { // always true
        event = window.event; // undefined in modern browsers
    }
    X = event.pageX; // ERROR!
}

没有var,一切都很好!

答案 1 :(得分:0)

当您使用addEventListener()时,Event对象会在支持该方法的所有浏览器中自动传递。但是,您在参数中立即调用您的事件处理程序。相反,你应该传递一个参考:

div3.addEventListener("mousedown", MouseDown, false);

另请注意"mousedown"没有on。在处理程序函数中,event始终存在,无需检查旧版IE,因为它们不支持addEventListener