2010-01-20 3 views
1

일단 범위를 만들면 Firefox의 HTML 콘텐츠를 어떻게 표시합니까? range.toString()은 나에게 텍스트 콘텐츠 만 제공합니다. 본질적으로, innerHTML과 같은 IE에서 마크 업을 반환합니다. 감사범위 또는 htmlfrag의 html 콘텐츠 표시

function innerHTML(oTarget, sContent, bAppend){ 
if (document.getElementById && !document.all) {//is this a non ie browser 
    var range = document.createRange(); 
    range.setStart(oTarget, 0); 
    range.setEnd(oTarget, oTarget.childNodes.length); 
    if (sContent) {//if there is content, save it if not return the content 
     var htmlFrag = range.createContextualFragment(sContent); 
     if (bAppend != true) {//append or replace 
      range.deleteContents(); 
     } 
     oTarget.appendChild(htmlFrag); //add the new html 
    } else { 
     sContent = range.toString(); 
    } 
} else { 
    if (sContent) { 
     if (bAppend == true) { 
      oTarget.innerHTML += sContent; 
     } else { 
      oTarget.innerHTML = sContent; 
     } 
    } 
    sContent = oTarget.innerHTML; 
} 
return sContent; 
} 

답변

0

innerHTML는 자바 스크립트 표준의 일부이며 모든 현대적인 브라우저에서 지원됩니다. else 문 (IE 용)은 oTarget이 HTML 요소 객체 인 한 Firefox에서도 작동해야합니다.

+0

oTarget이 실제로 무엇이든 될 수있는 유연성이 필요합니다. innerHTML은 경우에 따라 비 IE에서 스낵으로 실행됩니다. 나는 누군가가 범위 HTML 디스플레이 질문에 대한 답을 알고 있기를 바라고있다. – Praesagus