Cross-browser Outer HTML for Element

Posted by SibProgrammer on February 14, 2010|Comments

Remembered old trick on how to get outer HTML for DOM Element (created by Prototype) in cross-browser compatible way. Need to wrap element with another one and ask about innerHTML:

Element.addMethods({
  getHtml: function(element) {
    var wrapper = new Element('span');
    wrapper.update(element);
    return wrapper.innerHTML;
  }
});

Example of usage:

var test = new Element('div');
test.update('test <b>content</b>');
test.getHtml();

Need to say that this works only for not appended to document elements.