Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firefox的事件处理_Javascript_Events_Firefox - Fatal编程技术网

Javascript Firefox的事件处理

Javascript Firefox的事件处理,javascript,events,firefox,Javascript,Events,Firefox,可能重复: 我制作了一个网页,可以很好地与Chrome配合使用,但不能与Firefox配合使用。 代码如下: function set_email_params(e){ if(!e) e=window.Event; //window.event appeared to be "undefined" so I had to use Event alert(e.target); //shows "undefined" alert(e.target.src); if(e.t

可能重复:

我制作了一个网页,可以很好地与Chrome配合使用,但不能与Firefox配合使用。 代码如下:

function set_email_params(e){
if(!e)
    e=window.Event;   //window.event appeared to be "undefined" so I had to use Event
alert(e.target);        //shows "undefined"
alert(e.target.src);
if(e.target.src.indexOf("unchecked")>-1)
    e.target.src='images/small_radio_checked.png';
else
    e.target.src='images/small_radio_unchecked.png';
}
下面是函数的调用方式:

  <img onclick="set_email_params()" src="images/small_radio_unchecked.png" style="float:left;"/>

这段代码在Chrome上非常有效。
请帮帮我。

您没有在处理程序中传递
事件
对象

onclick="set_email_params(event)"
   <!---------------------^^^^^--------->
而在旧版IE中,它看起来更像这样:

function(event) {
    set_email_params(event);
}
function() {
    set_email_params(event);
}

因此,无论哪种方式,事件对象都将被传递。

您没有在处理程序中传递
事件
对象

onclick="set_email_params(event)"
   <!---------------------^^^^^--------->
而在旧版IE中,它看起来更像这样:

function(event) {
    set_email_params(event);
}
function() {
    set_email_params(event);
}


因此,无论哪种方式,事件对象都将被传递。

如何调用
set\u email\u params
?它是由于某种UI事件而调用的吗?(例如:按钮单击?)是的,当您单击图像时会调用它。
e=window.Event是错误的。如果(!e)e=window.event,则使用
即使
window.event
未定义的
@user1689607如果它是
未定义的
则该事件中缺少一些非常重要的代码post@Esailija:它应该是未定义的,因为它是非标准的。有一个
窗口。Event
函数,但在这里没有用。如何调用
设置电子邮件参数?它是由于某种UI事件而调用的吗?(例如:按钮单击?)是的,当您单击图像时会调用它。
e=window.Event是错误的。如果(!e)e=window.event,则使用
即使
window.event
未定义的
@user1689607如果它是
未定义的
则该事件中缺少一些非常重要的代码post@Esailija:它应该是未定义的,因为它是非标准的。有一个
window.Event
函数,但在这里没有用。它在chrome上运行仍然很奇怪,除非他有
window.Event
(在chrome中定义)@Esailija:是的,我不明白,除非他们真的向
window.Event
添加属性以“防止”bug。@Esailija:哦,等等,它在Chrome中工作,因为
如果(!e)
将失败。。。呃,没关系……我把自己搞糊涂了。他没有传递事件对象,所以它显然会传递。@user1689607在他的原始代码
中,如果(!e)
总是
true
,并且
e=window.event
分支被采用,因为函数没有传递任何参数,否?@Esailija:是的,我刚刚更新了我的注释,当我意识到这一点时。我现在耳朵里有很多东西,所以我要怪他们。:)在chrome上运行仍然很奇怪,除非他有
窗口。event
(在chrome中定义)@Esailija:是的,我不明白,除非他们真的向
窗口添加属性。event
以“防止”bug。@Esailija:哦,等等,它在chrome中运行是因为
如果(!e)
会失败。。。呃,没关系……我把自己搞糊涂了。他没有传递事件对象,所以它显然会传递。@user1689607在他的原始代码
中,如果(!e)
总是
true
,并且
e=window.event
分支被采用,因为函数没有传递任何参数,否?@Esailija:是的,我刚刚更新了我的注释,当我意识到这一点时。我现在耳朵里有很多东西,所以我要怪他们。:)