2010-01-20 46 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