2010-01-20 68 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是JavaScript標準的一部分,是由所有現代瀏覽器都支持。只要oTarget是HTML元素對象,您的else語句(對於IE)也應該在Firefox中工作。

+0

我需要oTarget的靈活性來做任何事情。在某些情況下,innerHTML會在非IE瀏覽器中遇到問題。我希望有人知道範圍HTML顯示問題的答案。 – Praesagus 2010-01-20 22:36:59