天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

如何在Z-Blog中運(yùn)行代碼(純JS版)一文中由于FF不支持insertAdjacentElement,造成無(wú)法顯示“運(yùn)行代碼”鏈接。今天Google了一下,發(fā)現(xiàn)一篇好文,將下面的腳本存成iedom4moz.js文件,每頁(yè)調(diào)用――OK,一切搞定!獨(dú)樂(lè)樂(lè),不如眾樂(lè)樂(lè),分享給諸位了^_^
復(fù)制代碼 代碼如下:
// 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){// 設(shè)置或者檢索當(dāng)前事件句柄的層次冒泡 
    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(){// 返回鼠標(biāo)移出的源節(jié)點(diǎn) 
    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(){// 返回鼠標(biāo)移入的源節(jié)點(diǎn) 
    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é)點(diǎn) 
    this.parentNode.replaceChild(Node,this); 
    } 
  Node.prototype.removeNode=function(removeChildren){// 刪除指定節(jié)點(diǎn) 
    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é)點(diǎn) 
    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é)點(diǎn) 
    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技術(shù)統(tǒng)一接口:為FireFox添加IE的方法和屬性的js代碼,轉(zhuǎn)載需保留來(lái)源!

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

主站蜘蛛池模板: 无限资源在线观看完整版免费下载 | 动漫美女被到爽了流 | 亚洲不卡一卡2卡三卡4卡5卡 | 中文无码热在线视频 | 国产精品免费久久久久影院 | 超碰在线视频 免费 | 亚洲AV 中文字幕 国产 欧美 | 国产学生无码中文视频一区 | 免费果冻传媒在线完整观看 | 国产人A片在线乱码视频 | 精品久久久久久电影网 | 欧美特黄99久久毛片免费 | 精品精品国产自在现拍 | 97人妻久久久精品系列A片 | 色综合色综合久久综合频道 | 日韩欧美视频一区二区 | 美女被爆羞羞天美传媒 | A级韩国乱理伦片在线观看 a级成人免费毛片完整版 | 国产网红主播精品福利大秀专区 | 国产精品成人无码免费视频 | 我的好妈妈8高清在线观看WWW | 亚洲偷偷自拍免费视频在线 | 中国农民真实bbwbbw | 嫩草成人国产精品 | 动漫美女的阴 | 国产精品欧美久久久久天天影视 | 亚洲综合小说久久另类区 | 两个人看的www免费高清直播 | 亚洲中文字幕日本在线观看 | 日韩精品亚洲专区在线电影不卡 | 色欲天天天综合网免费 | 国产亚洲精品久久久久久入口 | 亚洲一卡久久4卡5卡6卡7卡 | 国产色婷婷亚洲99麻豆 | 魔乳 堕乳漫画acg产卵 | 果冻传媒在线观看资源七夕 | 久久国产综合精品欧美 | 丰满人妻无码AV系列 | 超碰日韩人妻高清视频 | 伊人久久大线蕉香港三级 | 午夜影院费试看黄 |