e.target 和 e.srcElement 的使用问题

以前和少接触JS

 

   看了网上的一段代码 后面的三元表达式看懂了   还有几个疑问想咨询下大家   :

 

 

代码如下:

window.onload=function(){
 document.documentElement.onmouseup=function(e){
  e=e||window.event;  
       
  //alert(e.target);
  //alert("IE:"+e.srcElement);   
  //alert(e.button+1);
  var p=e.target?e.button+1:(e.button & 1 ? 1 : ( e.button & 2 ? 3 : ( e.button & 4 ? 2 : 0 ) )); //统一输出:左1 中2 右3
  if(p==3){
    alert("33333");
  }
 }
}

 

第一个疑问就是  : 

 

document.documentElement.onmouseup=function(e){
  e=e||window.event;  

网页是不是会自动去判断  如果是IE下的  就走 window.event

不是就直接 e=e

 

第二个问题:

 

e.srcElement IE 下的对象  

e.target  FOX下的对象

 

这里他们的使用原理是什么?    谢谢大家了 百度了很久也没找到相关  !!!!

1.
e=e||window.event;
这句话的意思,e对象存在时回返e,当window.event存在时返回event,这样就区分ff,ie了。
2.这是一种规范,ie下支持e.srcElement,ff支持e.target,没啥原理。

1.e=e||window.event; 就是或运算,结果返回不为undefined的那个值,如果2个都为undefined,则结果为undefined。
2.实现方式不一样,也就是API不一样,跟原理扯不上关系