作家
登录

关于Mozilla浏览器不支持innerText的解决办法

作者: 来源:www.28hudong.com 2013-03-30 01:04:05 阅读 我要评论

比如: <p id="test"><strong><font color="red">Hello</font> , world!</strong></p> 我们使用代码:alert((document.getElementById("test")).innerText) 在IE、Chrome中,均能获取到“Hello , world!”,但是在Firefox中,却得到了"undefined"。其原为是firefox中并不支持元素的innerText这个属性。当然,在网络上已经有很多好的方法来解决这个问题了,比如给HTMLElement原型添加一个属性(读取器)。 然而,所有文本节点都具有nodeValue属性,而且所有浏览器都是支持的。我们可以尝试用这种方法去读取一个HTML元素内的文本。 下面的原码,正好解决了这个问题: 复制代码 代码如下: function getText(e) { //若浏览器支持元素的innerText属性,则直接返回该属性 if(e.innerText) { return e.innerText; } //不支持innerText属性时,用以下方法处理 var t = ""; //如果传入的是一个元素对象,则继续访问其子元素 e = e.childNodes || e ; //遍历子元素的所有子元素 for(var i=0; i<e.length; i++) { //若为文本元素,则累加到字符串t中。 if(e[i].nodeType == 3) { t += e[i].nodeValue; } //否则递归遍历元素的所有子节点 else { t += getText(e[i].childNodes); } } return t; } 有了这个函数,我们再来看看如下DOM结构: <p id="test"><strong><font color="red">Hello</font> , world!</strong></p> 然后,我们用: alert(getText(document.getElementById("test")); 在IE、Chrome、Firefox中均能获取到 "Hello, world!"

  推荐阅读

  JavaScript 计算图片加载数量的代码

通过JavaScript 来计算当前图片加载的张数。 原理: 先定义一个图片的数组,然后通过image的onload事件来计算,注意,onload在ie和火狐有所不同。 最后需要一个进度条与之结合即可。 这个脚本在做游戏的地方用得比>>>详细阅读


本文标题:关于Mozilla浏览器不支持innerText的解决办法

地址:http://www.17bianji.com/kaifa2/JS/25096.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)