交互设计中心-72色

交互设计中心 | 用户体验 | 优化

firefox 下也能用innerText

2008年2月28日 | 分类:jquery/javascript | 评论:0 | 引用:0 | | Tags:javascript  Firefox  innerText  

IE中的获取文本方法innerText在firefox中不支持
firefox改成了contentText方法
并且在Firefox中文本中间的空白自符被无情的替换没了            
使用起来异常不方便
现在好了
用Javascript重新定义了innerText方法
使得在Firefox中也可以使用innerText方法
并且此方法解决了firefox中空白字符的问题

使用方法:
将下面的脚本放在页面内
不管ie还是firefox都可以使用obj.innerText提取文本了

<script       language="javascript">
function       isIE(){       //ie?
            if       (window.navigator.userAgent.toLowerCase().indexOf("msie")>   =1)
                return       true;
            else
                return       false;
}

if(!isIE()){       //firefox       innerText       define
            HTMLElement.prototype.__defineGetter__(                       "innerText",
                function(){
                    var       anyString       =       "";
                    var       childS       =       this.childNodes;
                    for(var       i=0;       i   <childS.length;       i++)       {
                        if(childS[i].nodeType==1)
                            anyString       +=       childS[i].tagName=="BR"       ?       '\n'       :       childS[i].innerText;
                        else       if(childS[i].nodeType==3)
                            anyString       +=       childS[i].nodeValue;
                    }
                    return       anyString;
                }
            );
            HTMLElement.prototype.__defineSetter__(                       "innerText",
                function(sText){
                    this.textContent=sText;
                }
            );
}
</script>

也可以用innerHTML

Share
« 2008年Logo设计10大趋势---02符合web标准插入Flash的方法 »



◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。