关于event事件对象问题,一直没搞太清楚。我的理解是,一旦有事件被触发(无论是onclick,onmouseout,onmouseover等),系统就会自动的触发一个event事件,这个event是来获取onclick,onmouseout,onmouseover等的详细信息的,比如按键信息等),意思就是我要知道鼠标点击的是左键还是右键,键盘上按下的是哪个键就得用event来获取对么?那么对于以下的例子,去掉系统默认的行为(在浏览器中点击右键会出现默认的菜单)document.oncontextmenu= function(e){
var oEvent;
if(window.event){
oEvent=window.event;
}else{
oEvent=arguments[0];
}
retrun false}这个例子中,function()里无论传不传参数e进去都会达到效果,那么,参数到底改不改传进去?为什么要传进去?
1 回答
已采纳
李晓健
TA贡献1036条经验 获得超461个赞
这个应该是做浏览器的兼容性的,在有些浏览器上触发一些系统事件时会把这个事件传进来,但是在有些浏览器上不会传,而是直接放到window对象上。所以就会有上面的if else的处理。而且这个事件上浏览器传进来的,不是你手动传进来的,你只是去取了一下,其实在这里 document.oncontextmenu= function(e) 这个e写不写都没有关系,因为你在后面根本就没有直接用到它,你在用到它时是通过arguments[0] 来取的。
添加回答
举报
0/150
提交
取消