显示范围或htmlfrag的html内容

时间:2010-01-20 21:20:06

标签: javascript dhtml

创建一个范围后,如何在Firefox中显示它的HTML内容? range.toString()仅向我提供了文字内容。本质上,像innerHTML一样在IE中返回标记。 感谢

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;
}

1 个答案:

答案 0 :(得分:0)

innerHTML是JavaScript标准的一部分,并得到所有现代浏览器的支持。只要else是HTML元素对象,您的oTarget语句(适用于IE)也可以在Firefox中使用。