innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等區(qū)別
更新時(shí)間:2007年06月29日 00:00:00 作者:
innerText 屬性在 IE 瀏覽器中可以得到當(dāng)前元素過(guò)濾掉 HTML Tags 之后的文本內(nèi)容,在某些時(shí)候還是比較有用。但類似的非標(biāo)準(zhǔn)屬性/方法在其他瀏覽器中并不一定都得到支持。
類似的像 insertAdjacentElement , insertAdjacentElement , insertAdjacentHTML , insertAdjacentText 等。如果需要使用這些非標(biāo)準(zhǔn)的方法,或者已有的代碼大量使用了這些方法的話,就必須為其他瀏覽器提供對(duì)應(yīng)的 prototype 定義。比如:
var isMinNS5 = (navigator.appName.indexOf("Netscape") >= 0 &&
parseFloat(navigator.appVersion) >= 5) ? 1 : 0;
if (isMinNS5){
HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode){
switch (where){
case beforeBegin:
this.parentNode.insertBefore(parsedNode,this)
break;
case afterBegin:
this.insertBefore(parsedNode,this.firstChild);
break;
case beforeEnd:
this.appendChild(parsedNode);
break;
case afterEnd:
if(this.nextSibling){
this.parentNode.insertBefore(parsedNode,this.nextSibling);
}
else{
this.parentNode.appendChild(parsedNode)
}
break;
}
}
HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){
var r = this.ownerDocument.createRange();
r.setStartBefore(this);
var parsedHTML = r.createContextualFragment(htmlStr);
this.appendChild(parsedHTML)
}
HTMLElement.prototype.insertAdjacentText = function(where,txtStr){
var parsedText = document.createTextNode(txtStr)
this.insertAdjacentElement(where,parsedText)
}
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;
}
);
}
類似的像 insertAdjacentElement , insertAdjacentElement , insertAdjacentHTML , insertAdjacentText 等。如果需要使用這些非標(biāo)準(zhǔn)的方法,或者已有的代碼大量使用了這些方法的話,就必須為其他瀏覽器提供對(duì)應(yīng)的 prototype 定義。比如:
var isMinNS5 = (navigator.appName.indexOf("Netscape") >= 0 &&
parseFloat(navigator.appVersion) >= 5) ? 1 : 0;
if (isMinNS5){
HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode){
switch (where){
case beforeBegin:
this.parentNode.insertBefore(parsedNode,this)
break;
case afterBegin:
this.insertBefore(parsedNode,this.firstChild);
break;
case beforeEnd:
this.appendChild(parsedNode);
break;
case afterEnd:
if(this.nextSibling){
this.parentNode.insertBefore(parsedNode,this.nextSibling);
}
else{
this.parentNode.appendChild(parsedNode)
}
break;
}
}
HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){
var r = this.ownerDocument.createRange();
r.setStartBefore(this);
var parsedHTML = r.createContextualFragment(htmlStr);
this.appendChild(parsedHTML)
}
HTMLElement.prototype.insertAdjacentText = function(where,txtStr){
var parsedText = document.createTextNode(txtStr)
this.insertAdjacentElement(where,parsedText)
}
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;
}
);
}
相關(guān)文章
Javascript中判斷對(duì)象是否具有屬性的5種方法分享
這篇文章主要介紹了Javascript中判斷對(duì)象是否具有屬性的5種方法分享,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08靈活使用console讓js調(diào)試更簡(jiǎn)單的方法步驟
這篇文章主要介紹了靈活使用console讓js調(diào)試更簡(jiǎn)單的方法步驟,適當(dāng)使用這些方法可以使調(diào)試更容易,更快速,更直觀,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04不依賴Flash和任何JS庫(kù)實(shí)現(xiàn)文本復(fù)制與剪切附源碼下載
本篇文章給大家分享的文本復(fù)制與剪切板功能,實(shí)現(xiàn)此功能不依賴falsh插件和任何js庫(kù)實(shí)現(xiàn)的,感興趣的朋友一起看看吧2015-10-10微信小程序?qū)崿F(xiàn)答題倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)答題倒計(jì)時(shí),自定義計(jì)時(shí)器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09原生JS實(shí)現(xiàn)圖片網(wǎng)格式漸顯、漸隱效果
這篇文章主要介紹了原生JS實(shí)現(xiàn)圖片網(wǎng)格式漸顯、漸隱效果,需要的朋友可以參考下2017-06-06JavaScript+html5 canvas繪制漸變區(qū)域完整實(shí)例
這篇文章主要介紹了JavaScript+html5 canvas繪制漸變區(qū)域的方法,結(jié)合完整實(shí)例形式分析了canvas顏色調(diào)用與圖形繪制的相關(guān)技巧,需要的朋友可以參考下2016-01-01