刘建广

博客园 首页 联系 订阅 管理

if(window.addEventListener) { FixPrototypeForGecko(); }  
  
   function  FixPrototypeForGecko()
   {
       HTMLElement.prototype.__defineGetter__("runtimeStyle",element_prototype_get_runtimeStyle);
       window.constructor.prototype.__defineGetter__("event",window_prototype_get_event);
       Event.prototype.__defineGetter__("srcElement",event_prototype_get_srcElement);
       Event.prototype.__defineGetter__("fromElement",  element_prototype_get_fromElement);
       Event.prototype.__defineGetter__("toElement", element_prototype_get_toElement);
   }  
  
   function  element_prototype_get_runtimeStyle() { return  this.style; }
   function  window_prototype_get_event() { return  SearchEvent(); }
   function  event_prototype_get_srcElement() { return  this.target; }  
  
   function element_prototype_get_fromElement() {
       var node;
       if(this.type == "mouseover") node = this.relatedTarget;
       else if (this.type == "mouseout") node = this.target;
       if(!node) return;
       while (node.nodeType != 1)
           node = node.parentNode;
       return node;
   }
  
   function  element_prototype_get_toElement() {
           var node;
           if(this.type == "mouseout")  node = this.relatedTarget;
           else if (this.type == "mouseover") node = this.target;
           if(!node) return;
           while (node.nodeType != 1)
              node = node.parentNode;
           return node;
   }
  
   function  SearchEvent()
   {
       if(document.all) return  window.event;  
       func = SearchEvent.caller;  
       while(func!=null){
           var  arg0=func.arguments[0];  
  
           if(arg0 instanceof Event) {
               return  arg0;
           }
          func=func.caller;
       }
       return   null;
   }

 

 

<script>
  function test(){
      alert("event:" + event +", srcElement:"+event.srcElement.innerHTML+
        ", fromElement:"+event.fromElement.innerHTML + ", toElement:"+event.toElement.innerHTML)
  }
</script>
 
<button onmouseout="test()">MouseOut</button><button onmouseover="test()">MouseOver</button>
posted on 2013-01-31 10:28  刘建广  阅读(360)  评论(0编辑  收藏  举报