Javascript 我如何使event.src元素在Firefox中工作,这意味着什么?

Javascript 我如何使event.src元素在Firefox中工作,这意味着什么?,javascript,firefox,cross-browser,Javascript,Firefox,Cross Browser,我公司的网站上有一个if语句,它使一个网页与firefox不兼容 if(event.srcElement.getAttribute("onclick") == null){ ...code.. document.mainForm.submit(); } 我已经注释掉了if语句的条件,现在它与foreox一起工作。我的问题是,什么是event.srcmelement.getAttribute(“onclick”),它是否重要,是否会在将来导致问题。还有,我可以用类似的东西来替代这个条件,这样它

我公司的网站上有一个if语句,它使一个网页与firefox不兼容

if(event.srcElement.getAttribute("onclick") == null){ 
...code..
document.mainForm.submit();
}
我已经注释掉了if语句的条件,现在它与foreox一起工作。我的问题是,什么是event.srcmelement.getAttribute(“onclick”),它是否重要,是否会在将来导致问题。还有,我可以用类似的东西来替代这个条件,这样它就可以在firefox上运行了吗

编辑:


srcement
是最初来自IE的专有财产。标准化财产是:

还可以查看更多跨浏览器信息


关于它正在做什么的问题:

event.target
/
event.srcElement
包含对引发
事件的元素的引用
getAttribute('onclick')==null
检查单击事件处理程序是否通过分配给元素


重要吗?我们不能说,因为我们不知道
…code..
正在做什么。

在IE中,事件对象已经在窗口对象中可用;在Firefox中,它作为参数传递到事件处理程序中

示例

JavaScript:

function toDoOnKeyDown(evt)

{

    //if window.event is equivalent as if thie browser is IE then the event object is in window
    //object and if the browser is FireFox then use the Argument evt

    var myEvent = ((window.event)?(event):(evt));
    //get the Element which this event is all about 

    var Element = ((window.event)?(event.srcElement):(evt.currentTarget));
    //To Do -->

}
HTML:


尝试以下快速修复:

在代码中包括:

let target = event.target || event.srcElement;
改变

event.srcElement.XXXXX to target.XXXXX

这就解决了Firefox的问题。

谷歌快速搜索“event.srcement”产生了。感谢felix,但我仍然得到一个javascript错误“event未定义[在这个错误上中断]var target=window.event.target | | event.srcement;”知道为什么吗?@user521180:在所有其他浏览器中,该事件不能通过
窗口
使用,但作为第一个参数传递给事件处理程序。因此,您需要类似于
函数yourHandler(event){event=event | | | window.event;var target=event.target | | | event.srcelment;…}
。如果你需要更多的帮助,也可以将代码发布到其中。我已经编辑了我的原始帖子,以包含全部内容function@FelixKling我认为现在不支持只从FF这应该更新。“你说得对,”费利克斯克林。现在只有firefox不支持Event.src元素。感谢您的编辑,我在这里是新的:)thanxs again如果您已经将另一个值传递到此函数中,该怎么办?您是否只添加“evt”作为第二个参数?Javascript如何知道哪个参数是事件对象?它必须是第一个参数吗?还是最后一个?
<input type="text" id="txt_Name" onkeydown="toDoOnKeyDown(event);"/>
document.getElementById('txt_Name').onkeydown = function(evt) {
    var myEvent = ((window.event)?(window.event):(evt));


    // get the Element which this event is all about 

    var Element = ((window.event)?(event.srcElement):(evt.currentTarget));
    // To Do -->
};
let target = event.target || event.srcElement;
event.srcElement.XXXXX to target.XXXXX