Отобразить содержание html диапазона или htmlfrag - PullRequest
1 голос
/ 21 января 2010

Как только я создаю диапазон, как мне отобразить его содержимое в Firefox? 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 голосов
/ 21 января 2010

innerHTML является частью стандарта JavaScript и поддерживается всеми современными браузерами. Ваш оператор else (для IE) также должен работать в Firefox, если oTarget является объектом элемента HTML.

...