textContent在Firefox下与innerText等效的属性

  在IE和Opear下,DOM对象支持innerText属性,可以很方便的去除HTML标签。

  但在Firefox不支持该属性,好在FF下的DOM对象支持textContent,该属性与innerText等效。

  演示实例:

  <p id="TestObj">Hi,I'm <strong>cnlei</strong>.Welcome to my homepage:<a href="http://www.cnlei.com">http://www.cnlei.com</a>.</p>

  <script type="text/javascript">

  function getInnerText(obj){

  return document.all?obj.innerText:obj.textContent;

  }

  var str = getInnerText(document.getElementById("TestObj"));

  alert(str);

  </script>

  为Firefox下的DOM对象增加innerText属性:

  <script type="text/javascript">

  var lBrowser = {};

  lBrowser.agt = navigator.userAgent.toLowerCase();

  lBrowser.isW3C = document.getElementById ? true:false;

  lBrowser.isIE = ((lBrowser.agt.indexOf("msie") != -1) && (lBrowser.agt.indexOf("opera") == -1) && (lBrowser.agt.indexOf("omniweb") == -1));

  lBrowser.isNS6 = lBrowser.isW3C && (navigator.appName=="Netscape") ;

  lBrowser.isOpera = lBrowser.agt.indexOf("opera") != -1;

  lBrowser.isGecko = lBrowser.agt.indexOf("gecko") != -1;

  lBrowser.ieTrueBody =function (){

  return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;

  };

  //为Firefox下的DOM对象增加innerText属性

  if(lBrowser.isNS6){ //firefox innerText define

  HTMLElement.prototype.__defineGetter__( "innerText",

  function(){

  return this.textContent;

  }

  );

  HTMLElement.prototype.__defineSetter__( "innerText",

  function(sText){

  this.textContent=sText;

  }

  );

  }

  alert(lBrowser.isNS6);

  </script>

  附录 DOM Reference:

  Firefox DOM参考:http://www.mozilla.org/docs/dom/domref/dom_shortTOC.html

  IE DOM参考:

  http://msdn2.microsoft.com/en-us/library/ms533050.aspx