01_utility.js
function convertToHTMLDocument(html, doc) {
html = html.replace(/<!DOCTYPE.*?>/, '').replace(/<html.*?>/, '').replace(/<\/html>.*/, '')
doc = doc || currentDocument() || document;
var xsl = (new DOMParser()).parseFromString(
'<?xml version="1.0"?>\
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform">\
<output method="html"/>\
</stylesheet>', 'text/xml');
var xsltp = new XSLTProcessor();
xsltp.importStylesheet(xsl);
doc = xsltp.transformToDocument(doc.implementation.createDocument('', '', null));
doc.appendChild(doc.createElement('html'));
var range = doc.createRange();
range.selectNodeContents(doc.documentElement);
doc.documentElement.appendChild(range.createContextualFragment(html));
return doc
}