相容火狐瀏覽器的原生js設定元素的text文字值
設定元素的html內容可以使用innerHTML屬性,並且此屬效能夠相容所有瀏覽器,但是使用原生javascript設定元素的text文字值,則需要進行一些相容性處理,因為雖然有一個innerText屬性,但是隻有IE和谷歌瀏覽器支援,火狐並不支援,下面就通過程式碼例項介紹一下如何實現此效果。
程式碼如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> function getText(obj){ if(obj.innerText){ return obj.innerText; } var text=""; obj=obj.childNodes||obj; for(var index=0;index<obj.length;index++){ if(obj[index].nodeType==3){ text+=obj[index].nodeValue; } else{ text+=getText(obj[index].childNodes); } } return text; } window.onload=function(){ var obt=document.getElementById("bt"); var oantzone=document.getElementById("antzone"); obt.onclick=function(){ alert(getText(oantzone)); } } </script> </head> <body> <p id="antzone"> <strong> <font color="red">螞蟻部落</font>antzone </strong> </p> <input type="button" id="bt" value="檢視效果"/> </body> </html>
上面你的程式碼實現了相容所有瀏覽器獲取元素下文字內容的功能,下面介紹一下它的實現過程。
一.實現原理:
1.在IE谷歌瀏覽器下,使用innerText屬性可以獲取,但是在火狐瀏覽器下不行,那麼我們可以使用nodeValue來實現此功能,也就是獲取文字節點的nodeValue屬性值即可,然後再將其連線起來就可以了,具體可以參閱程式碼註釋。
二.程式碼註釋:
1.function getText(obj){},此函式可以獲取指定元素下的文字內容,引數是元素物件或者集合。
2.if(obj.innerText){return obj.innerText;},如果支援innerText屬性,那麼就直接返回此元素的此屬性值。
3.var text="",宣告一個變數用來儲存文字內容。
4.obj=obj.childNodes||obj,如果傳遞的是一個元素物件就獲取它的子節點,如果是元素集合則直接使用該集合。
5.for(var index=0;index<obj.length;index++),遍歷節點集合的每一個節點。
6.if(obj[index].nodeType==3){text+=obj[index].nodeValue;},如果是文字節點,那麼就將文字節點的值累加到text字串中。
7.else{text+=getText(obj[index].childNodes);},如果不是,則遞迴呼叫getText()函式,再獲取此節點下面的文字內容,以此類推。
8.return text,最終返回這個文字內容。
三.相關閱讀:
1.innerText屬性可以參閱textContent與innerText用法簡單介紹一章節。
2.childNodes可以參閱js childNodes一章節。
3.nodeType屬性可以參閱js nodeType一章節。
相關文章
- 火狐瀏覽器相容模式怎麼設定在哪裡 火狐瀏覽器相容模式設定方法瀏覽器模式
- 相容所有瀏覽器js設定元素透明度效果瀏覽器JS
- 原生js如何建立相容所有瀏覽器的xmlhttp物件JS瀏覽器XMLHTTP物件
- 滑鼠右鍵相容MAC版火狐瀏覽器Mac瀏覽器
- javascript相容火狐等各瀏覽器的innerText屬性程式碼JavaScript瀏覽器
- 360極速瀏覽器相容模式怎麼設定 360極速瀏覽器相容模式設定方法瀏覽器模式
- ie瀏覽器相容模式怎麼設定在哪裡 ie瀏覽器相容模式設定方法瀏覽器模式
- Canvas元素實現文字的監聽輸入和主流瀏覽器的相容bugCanvas瀏覽器
- edge瀏覽器找不到相容性檢視設定 新版edge瀏覽器相容模式怎麼設定瀏覽器模式
- javascript相容所有瀏覽器設定元素透明度程式碼例項JavaScript瀏覽器
- 新版edge瀏覽器相容模式怎麼設定 edge瀏覽器相容性設定在哪裡瀏覽器模式
- win10瀏覽器相容性怎麼設定_win10瀏覽器相容性設定方法Win10瀏覽器
- js相容各個瀏覽器的事件物件JS瀏覽器事件物件
- 谷歌瀏覽器相容模式怎麼設定 chrome瀏覽器相容模式切換方法介紹谷歌瀏覽器模式Chrome
- .net火狐瀏覽器 ie瀏覽器 判斷瀏覽器
- 火狐瀏覽器如何設定主頁為新標籤頁瀏覽器
- 瀏覽器元素全屏api和在ie核心的部分相容瀏覽器API
- 火狐瀏覽器input設定disabled屬性之後事件不生效瀏覽器事件
- Sublime Text3—設定快捷鍵開啟瀏覽器瀏覽器
- 火狐瀏覽器禁用快取瀏覽器快取
- [BUG反饋]IE瀏覽器,百度瀏覽器,搜狗瀏覽器批量操作功能都不相容!!!!傲遊、火狐、谷歌瀏覽器可以瀏覽器谷歌
- 360瀏覽器相容模式怎麼設定 360極速瀏覽器極速相容模式怎麼切換瀏覽器模式
- 【求助】一段JS火狐瀏覽器下正常,IE瀏覽器下不正常。JS瀏覽器
- js 複製連結,支援IE,火狐等瀏覽器JS瀏覽器
- js相容所有瀏覽器的事件繫結程式碼JS瀏覽器事件
- 相容所有瀏覽器的阻止事件冒泡js程式碼瀏覽器事件JS
- 相容所有瀏覽器的點選複製文字內容效果瀏覽器
- 谷歌瀏覽器檢視和手動設定cookie的值谷歌瀏覽器Cookie
- 火狐瀏覽器資訊提取工具Dumpzilla瀏覽器
- 模擬實現相容低版本IE瀏覽器的原生bind()瀏覽器
- IE瀏覽器相容瀏覽器
- parseInt()瀏覽器相容瀏覽器
- 9:瀏覽器相容瀏覽器
- 設定Windows主機的瀏覽器為wls2的預設瀏覽器Windows瀏覽器
- js相容所有瀏覽器的pageX和pageY屬性JS瀏覽器
- 相容所有瀏覽器的js滑鼠中鍵滾動事件瀏覽器JS事件
- css文字兩端對齊效果相容各瀏覽器CSS瀏覽器
- 相容所有瀏覽器的禁止選中div文字程式碼例項瀏覽器