zoukankan      html  css  js  c++  java
  • 创建兼容 IE/FireFox 的 event 及 event 的 srcElement、fromElement、toElement 属性

    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>
  • 相关阅读:
    [转]SIFT特征提取分析
    OSGEARTH三维地形开源项目
    使用C#改变鼠标的指针形状
    检测到 LoaderLock:DLL"XXXX"正试图在OS加载程序锁内执行
    未能加载文件或程序集“XXXXX”或它的某一个依赖项。试图加载格式不正确的程序。
    未能进入中断模式,原因如下:源文件“XXXXXX”不属于正在调试的项目。
    C# 版本的 计时器类:精确到微秒 秒后保留一位小数 支持年月日时分秒带单位的输出
    OpenGL2.0及以上版本中glm,glut,glew,glfw,mesa等部件的关系
    OpenGL 4.3配置教程
    ubuntu maven环境安装配置
  • 原文地址:https://www.cnblogs.com/bailuobo/p/2886514.html
Copyright © 2011-2022 走看看