Skip to content

Instantly share code, notes, and snippets.

@kuoruan
Created April 18, 2020 03:16
Show Gist options
  • Save kuoruan/b9c7ba6e315d92f4f6c773e5cd1cceb6 to your computer and use it in GitHub Desktop.
Save kuoruan/b9c7ba6e315d92f4f6c773e5cd1cceb6 to your computer and use it in GitHub Desktop.
Convert HTML string to document fragment
export const rangeFragmentSuport =
"createContextualFragment" in document.createRange();
export const templateSupport = "content" in document.createElement("template");
export function htmlFragment(html: string): DocumentFragment {
if (rangeFragmentSuport) {
return document.createRange().createContextualFragment(html);
}
if (templateSupport) {
const template = document.createElement("template");
template.innerHTML = html;
return template.content;
}
const doc = document.implementation.createHTMLDocument(""),
range = doc.createRange(),
body = doc.body;
body.innerHTML = html;
range.selectNodeContents(body);
return range.extractContents();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment