这是事情。 我需要打开一个新选项卡并在新打开的选项卡上绘制一些内容。
我添加了类似的事件监听器:
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;
所以,有人知道如何解决这个问题?????
答案 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
。