首頁 >web前端 >js教程 >textContent在Firefox下与innerText等效的属性_javascript技巧

textContent在Firefox下与innerText等效的属性_javascript技巧

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原創
2016-05-16 19:13:43990瀏覽

在IE和Opear下,DOM对象支持innerText属性,可以很方便的去除HTML标签。
但在Firefox不支持该属性,好在FF下的DOM对象支持textContent,该属性与innerText等效。

演示实例:

Hi,I'm cnlei.Welcome to my homepage:http://www.cnlei.com.


<script> <BR>function getInnerText(obj){ <BR> return document.all?obj.innerText:obj.textContent; <BR>} <BR>var str = getInnerText(document.getElementById("TestObj")); <BR>alert(str); <BR></script>

为Firefox下的DOM对象增加innerText属性:
<script> <BR>var lBrowser = {}; <BR>lBrowser.agt = navigator.userAgent.toLowerCase(); <BR>lBrowser.isW3C = document.getElementById ? true:false; <BR>lBrowser.isIE = ((lBrowser.agt.indexOf("msie") != -1) && (lBrowser.agt.indexOf("opera") == -1) && (lBrowser.agt.indexOf("omniweb") == -1)); <BR>lBrowser.isNS6 = lBrowser.isW3C && (navigator.appName=="Netscape") ; <BR>lBrowser.isOpera = lBrowser.agt.indexOf("opera") != -1; <BR>lBrowser.isGecko = lBrowser.agt.indexOf("gecko") != -1; <BR>lBrowser.ieTrueBody =function (){ <BR> return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body; <BR>}; <br><br>//为Firefox下的DOM对象增加innerText属性 <BR>if(lBrowser.isNS6){ //firefox innerText define <BR> HTMLElement.prototype.__defineGetter__( "innerText", <BR> function(){ <BR> return this.textContent; <BR> } <BR> ); <BR> HTMLElement.prototype.__defineSetter__( "innerText", <BR> function(sText){ <BR> this.textContent=sText; <BR> } <BR> ); <BR>} <br><br>alert(lBrowser.isNS6); <BR></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 
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn