>  기사  >  웹 프론트엔드  >  innertext, insertadjacentelement, insertadjacenthtml, insertadjacenttext 등의 차이점_javascript 기술

innertext, insertadjacentelement, insertadjacenthtml, insertadjacenttext 등의 차이점_javascript 기술

WBOY
WBOY원래의
2016-05-16 19:12:031393검색

innerText 속성은 IE 브라우저에서 HTML 태그를 필터링한 후 현재 요소의 텍스트 콘텐츠를 얻는 데 사용할 수 있으며, 이는 경우에 따라 매우 유용합니다. 그러나 유사한 비표준 속성/메서드가 다른 브라우저에서 반드시 지원되는 것은 아닙니다.
insertAdjacentElement , insertAdjacentElement , insertAdjacentHTML , insertAdjacentText 등과 같은 유사한 것입니다. 이러한 비표준 메서드를 사용해야 하거나 기존 코드가 이러한 메서드를 광범위하게 사용하는 경우 다른 브라우저에 해당 프로토타입 정의를 제공해야 합니다. 예를 들어:


var isMinNS5 = (navigator.appName.indexOf("Netscape") >= 0 &&
parseFloat(navigator.appVersion) >= 5) 1 : 0;

if (isMinNS5){
HTMLElement.prototype.insertAdjacentElement = 함수(where,parsedNode){
스위치(어디){
사례 시작 전:
This.parentNode.insertBefore(parsedNode,this)
휴식;
시작 후 사례:
This.insertBefore(parsedNode,this.firstChild);
휴식;
사례 종료 전:
This.appendChild(parsedNode);
휴식;
종료 후 사례:
if(this.nextSibling){
This.parentNode.insertBefore(parsedNode,this.nextSibling);
}
그 외{
this.parentNode.appendChild(parsedNode)
}
휴식;
}
}
HTMLElement.prototype.insertAdjacentHTML = 함수(where,htmlStr){
var r = this.ownerDocument.createRange();
r.setStartBefore(this);
var parsedHTML = r.createContextualFragment(htmlStr);
this.appendChild(parsedHTML)
}
HTMLElement.prototype.insertAdjacentText = 함수(where,txtStr){
var parsedText = document.createTextNode(txtStr)
this.insertAdjacentElement(where,parsedText)
}
HTMLElement.prototype.__defineGetter__
(
"innerText",
함수(){
var anyString = "";
var childS = this.childNodes;
for(var i=0; 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;
}

anyString을 반환합니다.
}
);
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.