一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

統一接口:為FireFox添加IE的方法和屬性的js代碼

如何在Z-Blog中運行代碼(純JS版)一文中由于FF不支持insertAdjacentElement,造成無法顯示“運行代碼”鏈接。今天Google了一下,發現一篇好文,將下面的腳本存成iedom4moz.js文件,每頁調用――OK,一切搞定!獨樂樂,不如眾樂樂,分享給諸位了^_^
復制代碼 代碼如下:
// JavaScript Document 
// 統一接口:為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(){// 返回鼠標移出的源節點 
    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(){// 返回鼠標移入的源節點 
    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){// 替換指定節點 
    this.parentNode.replaceChild(Node,this); 
    } 
  Node.prototype.removeNode=function(removeChildren){// 刪除指定節點 
    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){// 交換節點 
    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){// 是否包含某節點 
    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技術統一接口:為FireFox添加IE的方法和屬性的js代碼,轉載需保留來源!

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

主站蜘蛛池模板: 五月综合在线 | 加勒比色综合久久久久久久久 | 天天狠狠色综合图片区 | 美女隐私视频黄www视频 | 丁香六月在线 | 97视频国产| 国产福利在线观看视频 | 亚洲成在人线中文字幕 | 一级毛片无遮挡免费全部 | 久久久免费精品 | 亚洲综合在线观看一区 | 成年人视频免费在线播放 | 狠狠综合久久综合鬼色 | 精品美女视频在线观看2023 | 免费xxx视频 | 国产精品久久久久影院色老大 | 国产精品区网红主播在线观看 | 日韩精品免费一区二区三区 | 欧美极品欧美日韩 | 亚洲射图| 2021国产精品自在拍在线播放 | 欧美成人高清免费大片观看 | 国内精品视频在线观看 | 国内一级特黄女人精品毛片 | 古代一级毛片 | 久久国产一区二区三区 | 美女一区二区三区 | 国产免费69成人精品视频 | 小说区图片区综合久久88 | 亚洲人xx视频 | 日韩视频在线一区 | 成年午夜视频免费观看视频 | 国产亚洲视频在线观看 | 国产福利在线观看永久视频 | 国产91久久最新观看地址 | 亚洲精品自在线拍 | 亚洲激情图片 | 精品国产午夜肉伦伦影院 | 一本色道久久综合狠狠躁 | 久久久久久久亚洲精品 | 噜噜噜 综合 亚洲 |