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:是的,我刚刚更新了我的注释,当我意识到这一点时。我现在耳朵里有很多东西,所以我要怪他们。:)