關(guān)于Mozilla瀏覽器不支持innerText的解決辦法
在各大瀏覽器中,除Mozilla瀏覽器外,幾乎都支持一個元素的屬性:innerText。我們可以通過它來快速獲取某個元素的內(nèi)的文本。
比如:
<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這個屬性。當然,在網(wǎng)絡(luò)上已經(jīng)有很多好的方法來解決這個問題了,比如給HTMLElement原型添加一個屬性(讀取器)。
然而,所有文本節(jié)點都具有nodeValue屬性,而且所有瀏覽器都是支持的。我們可以嘗試用這種方法去讀取一個HTML元素內(nèi)的文本。
下面的原碼,正好解決了這個問題:
function getText(e) {
//若瀏覽器支持元素的innerText屬性,則直接返回該屬性
if(e.innerText) { return e.innerText; }
//不支持innerText屬性時,用以下方法處理
var t = "";
//如果傳入的是一個元素對象,則繼續(xù)訪問其子元素
e = e.childNodes || e ;
//遍歷子元素的所有子元素
for(var i=0; i<e.length; i++) {
//若為文本元素,則累加到字符串t中。
if(e[i].nodeType == 3) { t += e[i].nodeValue; }
//否則遞歸遍歷元素的所有子節(jié)點
else { t += getText(e[i].childNodes); }
}
return t;
}有了這個函數(shù),我們再來看看如下DOM結(jié)構(gòu):
<p id="test"><strong><font color="red">Hello</font> , world!</strong></p>
然后,我們用:
alert(getText(document.getElementById("test"));
在IE、Chrome、Firefox中均能獲取到 "Hello, world!"
下面分享一下另外一個函數(shù)
try{
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;
}
);
}
catch(e){}到此這篇關(guān)于關(guān)于Mozilla瀏覽器不支持innerText的解決辦法的文章就介紹到這了,更多相關(guān)不支持innerText內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Javascript驗證Visa和MasterCard信用卡號的方法
這篇文章主要介紹了Javascript驗證Visa和MasterCard信用卡號的方法,涉及javascript正則驗證的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
js簡單實現(xiàn)根據(jù)身份證號碼識別性別年齡生日
根據(jù)身份證號碼識別性別年齡生日,目前就有一個這樣的需求,那么接下來為大家介紹下使用js是如何實現(xiàn)的,感興趣的朋友不要錯過2013-11-11
解決ie11 SCRIPT5011:不能執(zhí)行已釋放Script的代碼問題
這篇文章主要介紹了ie11 SCRIPT5011:不能執(zhí)行已釋放Script的代碼 ,需要的朋友可以參考下2019-05-05
js樹插件zTree獲取所有選中節(jié)點數(shù)據(jù)的方法
這篇文章主要介紹了js樹插件zTree獲取所有選中節(jié)點數(shù)據(jù)的方法,是對js樹插件zTree非常實用的操作,需要的朋友可以參考下2015-01-01
javascript中的數(shù)據(jù)類型檢測方法詳解
這篇文章主要介紹了javascript中的數(shù)據(jù)類型檢測方法,結(jié)合實例形式分析了javascript數(shù)據(jù)類型并總結(jié)分析了常見的數(shù)據(jù)類型檢測操作技巧,需要的朋友可以參考下2019-08-08
JavaScript報錯:Uncaught ReferenceError: XYZ is&
在 JavaScript 編程中,“Uncaught ReferenceError: XYZ is not defined” 是一種常見的錯誤,這種錯誤通常發(fā)生在試圖使用一個未聲明的變量或標識符時,故本文給大家介紹了JavaScript報錯:Uncaught ReferenceError: XYZ is not defined的解決方法,需要的朋友可以參考下2024-07-07

