給moizlla添加ie方法和屬性

來源:互聯網
上載者:User

<html>
<head>
<title> 新文檔 </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="FlashSoft">
<meta name="Keywords" content="">
<meta name="Description" content="FlashSoft">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="JavaScript" type="Text/JavaScript">
<!--
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);
  }
 }
//-->
</script>
</head>
<body>
</body>
</html>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.