convertToHTMLDocument

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
}