在IE和Opear下,DOM对象支持innerText属性,可以很方便的去除HTML标签。
但在Firefox不支持该属性,好在FF下的DOM对象支持textContent,该属性与innerText等效。
演示实例:
<pid="TestObj">Hi,I'm<strong>cnlei</strong>.Welcometomyhomepage:<ahref="http://www.cnlei.com">http://www.cnlei.com</a>.</p>
<scripttype="text/javascript">
functiongetInnerText(obj){
returndocument.all?obj.innerText:obj.textContent;
}
varstr=getInnerText(document.getElementById("TestObj"));
alert(str);
</script>
为Firefox下的DOM对象增加innerText属性:
<scripttype="text/javascript">
varlBrowser={};
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){//firefoxinnerTextdefine
HTMLElement.prototype.__defineGetter__("innerText",
function(){
returnthis.textContent;
}
);
HTMLElement.prototype.__defineSetter__("innerText",
function(sText){
this.textContent=sText;
}
);
}
alert(lBrowser.isNS6);
</script>
附录DOMReference:
FirefoxDOM参考:http://www.mozilla.org/docs/dom/domref/dom_shortTOC.html
IEDOM参考:
http://msdn2.microsoft.com/en-us/library/ms533050.aspx