Here is a very small tweak to Edward Wilde's answer that preserves the attributes on the
tag.
if (elem.tagName == "PRE" && "outerHTML" in elem) {
var outer = elem.outerHTML;
elem.outerHTML = outer.substring(0, outer.indexOf('>') + 1) + str + "
";
}
else {
elem.innerHTML = str;
}