以前和少接触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不一样,跟原理扯不上关系