⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 event-util.js

📁 原名JSPackager
💻 JS
字号:
var EventUtil = {
}

var events = ['click','mousedown','mouseup','mouseover','mousemove','mouseout','load','unload','abort','error','select','change','submit','reset','focus','blur','resize','scroll'].
             concat(['DOMFocusIn','DOMFocusOut','DOMActivate']);
if(document.addEventListener){
  EventUtil.addListener = function(el,type,fn,cap){
    el.addEventListener(type,fn,cap);
  };
  EventUtil.removeListener = function(el,type,fn,cap){
    el.removeEventListener(type,fn,cap);
  };
  EventUtil.dispatchEvent = function(el,event){
    el.dispatchEvent(event);
  };
  EventUtil.createEvent = function(type,canBubble,cancelable){
    var event = document.createEvent(type);
    event.initEvent(type,canBubble,cancelable);
    return event;
  }
}else{
  EventUtil.addListener = function(el,type,fn,cap){
    fn.$listener = fn.$listener || 
      (fn.$listener = function(){
        fn.call(window.event.srcElement,window.event);
      });
    el.attachEvent('on'+type,fn.$listener,cap);
  };
  EventUtil.removeListener = function(el,type,fn,cap){
    if(fn.$listener){
      el.detachEvent('on'+type,fn.$listener,cap);
    }
  };
  EventUtil.dispatchEvent = function(el,event){
    if(event.type){
      el.fireEvent('on'+event.type,event);
    }
  };
  EventUtil.createEvent = function(type,canBubble,cancelable){
    var event = document.createEventObject();
    event.type = type;
    //event.initEvent(type,canBubble,cancelable);
    return event;
  }
}
for(var i = 0 ;i<events.length;i++){
  var type = events[i];
  var stuf = type.substr(0,1).toUpperCase()+type.substr(1)+'Listener';
  EventUtil['add'+stuf] =  function(element,listener,captrue){
    this.addListener(element,type,listener,captrue)
  }
  EventUtil['remove'+stuf] =  function(element,listener,captrue){
    this.removeListener(element,type,listener,captrue)
  }
}
//var domevents = ['DOMFocusIn','DOMFocusOut','DOMActivate'];
if(!document.implementation || !document.implementation.hasFeature('UIEvents', "2.0")){
  EventUtil['addDOMFocusInListener'] = function(element,listener,captrue){this.addListener(element,'focus',listener,captrue)}
  EventUtil['removeDOMFocusInListener'] = function(element,listener,captrue){this.removeListener(element,'focus',listener,captrue)}
  EventUtil['addDOMFocusOutListener'] = function(element,listener,captrue){this.addListener(element,'blur',listener,captrue)}
  EventUtil['removeDOMFocusOutListener'] = function(element,listener,captrue){this.removeListener(element,'blur',listener,captrue)}
  EventUtil['addDOMActivateListener'] = function(element,listener,captrue){this.addListener(element,'activate',listener,captrue)}
  EventUtil['removeDOMActivateListener'] = function(element,listener,captrue){this.removeListener(element,'activate',listener,captrue)}
}

EventUtil.addDOMLoadListener = function(element,listener){
  if(arguments.length == 1){
    listener = arguments[0];
    element = document;
  }else{
    element = element || document;
  }
  if(BrowserInfo.isIE()){
    element.attachEvent('onreadystatechange',function(){
      if(/loaded|complete/.test(element.readyState)){
        listener.apply(element);
      }
    })
  }else if(BrowserInfo.isOpera(9)){
    this.addListener(element,'DOMContentLoaded',listener);
  }else if(BrowserInfo.isGecko(20020826)){//Mozilla 1.0.1 支持 DOMContentLoaded
    this.addListener(element,'DOMContentLoaded',listener);
  }else {//alert(element.readyState)
    if(element.readyState){
      var timer = setInterval(function(){
        //alert(document.readyState)
        if (/loaded|complete/.test(element.readyState)) {
          window.clearInterval(timer);
          listener.apply(element); // call the onload handler
        }
      }, 10);
    }else{
      if(element == document){
        element = window;
      }
      this.addListener(element,"load",listener);
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -