国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

關于Mozilla瀏覽器不支持innerText的解決辦法

2019-11-21 00:00:16
字體:
來源:轉載
供稿:網友
比如:
<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!"
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 罗定市| 进贤县| 崇文区| 汉川市| 都匀市| 十堰市| 深州市| 花垣县| 论坛| 无棣县| 兴安盟| 铜陵市| 滦平县| 阿克陶县| 保定市| 达拉特旗| 涞水县| 枝江市| 岳西县| 湄潭县| 罗源县| 石渠县| 长岭县| 昭平县| 中卫市| 乌恰县| 图片| 宁陕县| 阜平县| 隆德县| 和田市| 墨竹工卡县| 盐山县| 景泰县| 龙口市| 千阳县| 西青区| 镇远县| 原平市| 勐海县| 陵川县|