教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 前端开发 > JS教程 >

使firefox支持innerText属性的4种方法.

时间:2012-04-06 00:42来源:未知 作者:ken 点击:

innerText和innerHTML在IE中能正常工作,但是innerText在FireFox中却不行,为什么呢?因为这两个属性都不是DHTML标准。
firefox支持textContent来实现innerText,不过默认把多余的空格也保留了。如果不用textContent,如果字符串里面不包含HTML代码也可以用innerHTML代替。

如何做呢?经过一翻较量,和查看FF的javascript console最终网上找到如下代码:  

解决方法一:

  1. if(navigator.appName.indexOf("Explorer") > -1){   
  2. document.getElementById(''element'').innerText = "my text";}   
  3. else{   
  4. document.getElementById(''element'').textContent = "my text";}   


解决方法二:

  1. document.all?oTable.rows[i].cells[2].innerText:oTable.rows[i].cells[2].textContent;或者  
  2.  
  3. length=oTable.rows[2].cells[2].innerText?oTable.rows[2].cells[2].innerText:oTable.rows[2].cells[2].textContent; 


解决方法三:站长教学网 eduyo.com

  1. <script type="text/javascript">  
  2. var lBrowser = {};  
  3. lBrowser.agt = navigator.userAgent.toLowerCase();  
  4. lBrowser.isW3C = document.getElementById ? true:false;  
  5. lBrowser.isIE = ((lBrowser.agt.indexOf("msie") != -1) && (lBrowser.agt.indexOf("opera") == -1) && (lBrowser.agt.indexOf("omniweb") == -1));  
  6. lBrowser.isNS6 = lBrowser.isW3C && (navigator.appName=="Netscape") ;  
  7. lBrowser.isOpera = lBrowser.agt.indexOf("opera") != -1;  
  8. lBrowser.isGecko = lBrowser.agt.indexOf("gecko") != -1;  
  9. lBrowser.ieTrueBody =function (){  
  10.   return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;  
  11. };  
  12.  
  13. //为Firefox下的DOM对象增加innerText属性  
  14. if(lBrowser.isNS6){ //firefox innerText define  
  15.  HTMLElement.prototype.__defineGetter__( "innerText",   
  16.  function(){   
  17.  return this.textContent;   
  18.  }   
  19.  );   
  20.  HTMLElement.prototype.__defineSetter__( "innerText",   
  21.  function(sText){   
  22.  this.textContent=sText;   
  23.  }   
  24.  );   
  25. }  
  26.  
  27. alert(lBrowser.isNS6);  
  28. </script>  
  29.  

解决方法四:

  1. //让Mozilla支持innerText  
  2. try{  
  3.     HTMLElement.prototype.__defineGetter__  
  4.     (  
  5.         "innerText",  
  6.         function ()  
  7.         {  
  8.             var anyString = "";  
  9.             var childS = this.childNodes;  
  10.             for(var i=0; i<childS.length; i++)  
  11.             {  
  12.                 if(childS[i].nodeType==1)  
  13.                     anyString += childS[i].tagName=="BR" ? '\n' : childS[i].innerText;  
  14.                 else if(childS[i].nodeType==3)  
  15.                     anyString += childS[i].nodeValue;  
  16.             }  
  17.             return anyString;  
  18.         }  
  19.     );  
  20. }  
  21. catch(e){}  

 

(责任编辑:ken)
TAG标签: js firefox innerHTML 属性 innerText textContent
顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容