Thorsten: outerHTML, aber bitte Cross-Browser

Beitrag lesen

Hi ihr alle,

dane für die Beiträge. Mein aktueller Code, den ich mit Hilfe des Internet zusammengebaut hab sieht so aus:

function replaceComponentHtml(id, html) {
    var component = document.getElementById(id);
    if (component == null) return;

if (typeof component.outerHTML != 'undefined') {
        component.outerHTML = html;
    } else {
        var parent = component.parentNode;
        if (parent == null) return;

var nrOfChildElements = 0;
        var lastChildElementTag = null;
        for (var i = 0; i < parent.childNodes.length; i++) {
            if (parent.childNodes[i].nodeType == 1) {
                nrOfChildElements++;
                lastChildElementTag = parent.childNodes[i].tagName;
            }
        }

if (nrOfChildElements == 1) {
            parent.innerHTML = html;
        } else {
            var range;
            if (document.createRange && (range = document.createRange()) &&
                range.createContextualFragment) {
                range.selectNode(component);
                var docFrag = range.createContextualFragment(html);
                parent.replaceChild(docFrag, component);
            }
        }
    }
}

Könntet ihr mal drüberschauen?

Danke,
Thorsten