色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

統(tǒng)一接口:為FireFox添加IE的方法和屬性的js代碼

如何在Z-Blog中運行代碼(純JS版)一文中由于FF不支持insertAdjacentElement,造成無法顯示“運行代碼”鏈接。今天Google了一下,發(fā)現一篇好文,將下面的腳本存成iedom4moz.js文件,每頁調用――OK,一切搞定!獨樂樂,不如眾樂樂,分享給諸位了^_^
復制代碼 代碼如下:
// JavaScript Document 
// 統(tǒng)一接口:為FireFox添加IE的方法和屬性 
if(window.Event){// 修正Event的DOM 
  /* 
                IE5    MacIE5    Mozilla    Konqueror2.2    Opera5 
  event            yes    yes      yes      yes          yes 
  event.returnValue      yes    yes      no      no          no 
  event.cancelBubble      yes    yes      no      no          no 
  event.srcElement      yes    yes      no      no          no 
  event.fromElement      yes    yes      no      no          no 
  */ 
  Event.prototype.__defineSetter__("returnValue",function(b){//  
    if(!b)this.preventDefault(); 
    return b; 
    }); 
  Event.prototype.__defineSetter__("cancelBubble",function(b){// 設置或者檢索當前事件句柄的層次冒泡 
    if(b)this.stopPropagation(); 
    return b; 
    }); 
  Event.prototype.__defineGetter__("srcElement",function(){ 
    var node=this.target; 
    while(node.nodeType!=1)node=node.parentNode; 
    return node; 
    }); 
  Event.prototype.__defineGetter__("fromElement",function(){// 返回鼠標移出的源節(jié)點 
    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; 
    }); 
  Event.prototype.__defineGetter__("toElement",function(){// 返回鼠標移入的源節(jié)點 
    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; 
    }); 
  Event.prototype.__defineGetter__("offsetX",function(){ 
    return this.layerX; 
    }); 
  Event.prototype.__defineGetter__("offsetY",function(){ 
    return this.layerY; 
    }); 
  } 
if(window.Document){// 修正Document的DOM 
  /* 
                IE5    MacIE5    Mozilla    Konqueror2.2    Opera5 
  document.documentElement  yes    yes      yes      yes          no 
  document.activeElement    yes    null    no      no          no 
  */ 
  } 
if(window.Node){// 修正Node的DOM 
  /* 
                IE5    MacIE5    Mozilla    Konqueror2.2    Opera5 
  Node.contains        yes    yes      no      no          yes 
  Node.replaceNode      yes    no      no      no          no 
  Node.removeNode        yes    no      no      no          no 
  Node.children        yes    yes      no      no          no 
  Node.hasChildNodes      yes    yes      yes      yes          no 
  Node.childNodes        yes    yes      yes      yes          no 
  Node.swapNode        yes    no      no      no          no 
  Node.currentStyle      yes    yes      no      no          no 
  */ 
  Node.prototype.replaceNode=function(Node){// 替換指定節(jié)點 
    this.parentNode.replaceChild(Node,this); 
    } 
  Node.prototype.removeNode=function(removeChildren){// 刪除指定節(jié)點 
    if(removeChildren) 
      return this.parentNode.removeChild(this); 
    else{ 
      var range=document.createRange(); 
      range.selectNodeContents(this); 
      return this.parentNode.replaceChild(range.extractContents(),this); 
      } 
    } 
  Node.prototype.swapNode=function(Node){// 交換節(jié)點 
    var nextSibling=this.nextSibling; 
    var parentNode=this.parentNode; 
    node.parentNode.replaceChild(this,Node); 
    parentNode.insertBefore(node,nextSibling); 
    } 
  } 
if(window.HTMLElement){ 
  HTMLElement.prototype.__defineGetter__("all",function(){ 
    var a=this.getElementsByTagName("*"); 
    var node=this; 
    a.tags=function(sTagName){ 
      return node.getElementsByTagName(sTagName); 
      } 
    return a; 
    }); 
  HTMLElement.prototype.__defineGetter__("parentElement",function(){ 
    if(this.parentNode==this.ownerDocument)return null; 
    return this.parentNode; 
    }); 
  HTMLElement.prototype.__defineGetter__("children",function(){ 
    var tmp=[]; 
    var j=0; 
    var n; 
    for(var i=0;i<this.childNodes.length;i++){ 
      n=this.childNodes[i]; 
      if(n.nodeType==1){ 
        tmp[j++]=n; 
        if(n.name){ 
          if(!tmp[n.name]) 
            tmp[n.name]=[]; 
          tmp[n.name][tmp[n.name].length]=n; 
          } 
        if(n.id) 
          tmp[n.id]=n; 
        } 
      } 
    return tmp; 
    }); 
  HTMLElement.prototype.__defineGetter__("currentStyle", function(){ 
    return this.ownerDocument.defaultView.getComputedStyle(this,null); 
    }); 
  HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML){ 
    var r=this.ownerDocument.createRange(); 
    r.setStartBefore(this); 
    var df=r.createContextualFragment(sHTML); 
    this.parentNode.replaceChild(df,this); 
    return sHTML; 
    }); 
  HTMLElement.prototype.__defineGetter__("outerHTML",function(){ 
    var attr; 
    var attrs=this.attributes; 
    var str="<"+this.tagName; 
    for(var i=0;i<attrs.length;i++){ 
      attr=attrs[i]; 
      if(attr.specified) 
        str+=" "+attr.name+'="'+attr.value+'"'; 
      } 
    if(!this.canHaveChildren) 
      return str+">"; 
    return str+">"+this.innerHTML+"</"+this.tagName+">"; 
    }); 
  HTMLElement.prototype.__defineGetter__("canHaveChildren",function(){ 
    switch(this.tagName.toLowerCase()){ 
      case "area": 
      case "base": 
      case "basefont": 
      case "col": 
      case "frame": 
      case "hr": 
      case "img": 
      case "br": 
      case "input": 
      case "isindex": 
      case "link": 
      case "meta": 
      case "param": 
        return false; 
      } 
    return true; 
    }); 
  HTMLElement.prototype.__defineSetter__("innerText",function(sText){ 
    var parsedText=document.createTextNode(sText); 
    this.innerHTML=parsedText; 
    return parsedText; 
    }); 
  HTMLElement.prototype.__defineGetter__("innerText",function(){ 
    var r=this.ownerDocument.createRange(); 
    r.selectNodeContents(this); 
    return r.toString(); 
    }); 
  HTMLElement.prototype.__defineSetter__("outerText",function(sText){ 
    var parsedText=document.createTextNode(sText); 
    this.outerHTML=parsedText; 
    return parsedText; 
    }); 
  HTMLElement.prototype.__defineGetter__("outerText",function(){ 
    var r=this.ownerDocument.createRange(); 
    r.selectNodeContents(this); 
    return r.toString(); 
    }); 
  HTMLElement.prototype.attachEvent=function(sType,fHandler){ 
    var shortTypeName=sType.replace(/on/,""); 
    fHandler._ieEmuEventHandler=function(e){ 
      window.event=e; 
      return fHandler(); 
      } 
    this.addEventListener(shortTypeName,fHandler._ieEmuEventHandler,false); 
    } 
  HTMLElement.prototype.detachEvent=function(sType,fHandler){ 
    var shortTypeName=sType.replace(/on/,""); 
    if(typeof(fHandler._ieEmuEventHandler)=="function") 
      this.removeEventListener(shortTypeName,fHandler._ieEmuEventHandler,false); 
    else 
      this.removeEventListener(shortTypeName,fHandler,true); 
    } 
  HTMLElement.prototype.contains=function(Node){// 是否包含某節(jié)點 
    do if(Node==this)return true; 
    while(Node=Node.parentNode); 
    return false; 
    } 
  HTMLElement.prototype.insertAdjacentElement=function(where,parsedNode){ 
    switch(where){ 
      case "beforeBegin": 
        this.parentNode.insertBefore(parsedNode,this); 
        break; 
      case "afterBegin": 
        this.insertBefore(parsedNode,this.firstChild); 
        break; 
      case "beforeEnd": 
        this.appendChild(parsedNode); 
        break; 
      case "afterEnd": 
        if(this.nextSibling) 
          this.parentNode.insertBefore(parsedNode,this.nextSibling); 
        else 
          this.parentNode.appendChild(parsedNode); 
        break; 
      } 
    } 
  HTMLElement.prototype.insertAdjacentHTML=function(where,htmlStr){ 
    var r=this.ownerDocument.createRange(); 
    r.setStartBefore(this); 
    var parsedHTML=r.createContextualFragment(htmlStr); 
    this.insertAdjacentElement(where,parsedHTML); 
    } 
  HTMLElement.prototype.insertAdjacentText=function(where,txtStr){ 
    var parsedText=document.createTextNode(txtStr); 
    this.insertAdjacentElement(where,parsedText); 
    } 
  HTMLElement.prototype.attachEvent=function(sType,fHandler){ 
    var shortTypeName=sType.replace(/on/,""); 
    fHandler._ieEmuEventHandler=function(e){ 
      window.event=e; 
      return fHandler(); 
      } 
    this.addEventListener(shortTypeName,fHandler._ieEmuEventHandler,false); 
    } 
  HTMLElement.prototype.detachEvent=function(sType,fHandler){ 
    var shortTypeName=sType.replace(/on/,""); 
    if(typeof(fHandler._ieEmuEventHandler)=="function") 
      this.removeEventListener(shortTypeName,fHandler._ieEmuEventHandler,false); 
    else 
      this.removeEventListener(shortTypeName,fHandler,true); 
    } 
  } 

JavaScript技術統(tǒng)一接口:為FireFox添加IE的方法和屬性的js代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 威宁| 腾冲县| 巴林左旗| 周口市| 乌鲁木齐县| 惠来县| 丽江市| 务川| 阜新市| 凤冈县| 渝北区| 玉山县| 北安市| 鄱阳县| 南皮县| 三门县| 子长县| 高州市| 阜新市| 鄂托克前旗| 新竹市| 新巴尔虎右旗| 贵州省| 安仁县| 田林县| 太和县| 新民市| 和政县| 庄浪县| 郎溪县| 山西省| 伊川县| 察隅县| 鄂尔多斯市| 德令哈市| 墨脱县| 石柱| 安康市| 巴彦淖尔市| 定陶县| 菏泽市|