返回顶部

[js属性]outerHTML与innerHTML,outerText与innerText

时间:2011-09-27来源:源艺工作室

开始之前注意:火狐(firefox)不支持outerHTML,innerText,outerText。

innerHTMl定义:

用来设置或获取位于对象起始和结束标签内的HTML(包括html代码)。所有浏览器都支持

outerHTML定义:

用来设置或获取位于对象起始和结束标签内的HTML(包括HTML代码,且包括自身标签)

outText与innerText定义:

用法上没有什么区别,设置或获取对象的文本

在火狐中扩展innerText,outerText,outerHTML,代码如下:

Code:
  1. //在火狐中扩展outerHTML   
  2. if(typeof(HTMLElement)!="undefined" && !window.opera)    
  3. {    
  4.     HTMLElement.prototype.__defineGetter__("outerHTML",function()    
  5.     {    
  6.         var a=this.attributes, str="<"+this.tagName, i=0;for(;i<a.length;i++)    
  7.         if(a[i].specified)    
  8.             str+=" "+a[i].name+'="'+a[i].value+'"';    
  9.         if(!this.canHaveChildren)    
  10.             return str+" />";    
  11.         return str+">"+this.innerHTML+"</"+this.tagName+">";    
  12.     });    
  13.     HTMLElement.prototype.__defineSetter__("outerHTML",function(s)    
  14.     {    
  15.         var r = this.ownerDocument.createRange();    
  16.         r.setStartBefore(this);    
  17.         var df = r.createContextualFragment(s);    
  18.         this.parentNode.replaceChild(df, this);    
  19.         return s;    
  20.     });    
  21.     HTMLElement.prototype.__defineGetter__("canHaveChildren",function()    
  22.     {    
  23.         return !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());    
  24.     });    
  25. }    
  26. //在火狐中扩展innerText   
  27. if (!!document.getBoxObjectFor || window.mozInnerScreenX != null) {   
  28.     HTMLElement.prototype.__defineSetter__("innerText"function(sText) {   
  29.         var parsedText = document.createTextNode(sText);   
  30.         this.innerHTML = "";   
  31.         this.appendChild(parsedText);   
  32.         return parsedText;   
  33.     });   
  34.     HTMLElement.prototype.__defineGetter__("innerText"function() {   
  35.         var r = this.ownerDocument.createRange();   
  36.         r.selectNodeContents(this);   
  37.         return r.toString();   
  38.     });   
  39. }   
  40. //在火狐中扩展outerText   
  41. if (!!document.getBoxObjectFor || window.mozInnerScreenX != null) {   
  42.     HTMLElement.prototype.__defineSetter__("outerText"function(sText) {   
  43.         var parsedText = document.createTextNode(sText);   
  44.         this.parentNode.replaceChild(parsedText, this);   
  45.         return parsedText;   
  46.     });   
  47.     HTMLElement.prototype.__defineGetter__("outerText"function() {   
  48.         var r = this.ownerDocument.createRange();   
  49.         r.selectNodeContents(this);   
  50.         return r.toString();   
  51.     });   
  52. }  

 实例:


[提示:可以修改后运行]

 

编辑:Jerman
前端交互
前端优化及工具
DIV+CSS
CSS基础及常用代码
W3C
Actionscript/Flex
FLA源码及flash应用
Javascript/Ajax
Javascript对象(Object)
Javascript方法(Method)
Javascript属性(Attribute)
Ajax
JS插件
jQuery框架
HTML
HTML基础及探讨