Make default JS renderer treat js as modules (#160347)

Fixes #157076
This commit is contained in:
Matt Bierner
2022-09-07 13:47:01 -07:00
committed by GitHub
parent f86ceb6749
commit f4f68a568d

View File

@@ -88,10 +88,12 @@ function renderHTML(outputInfo: OutputItem, container: HTMLElement, hooks: Itera
}
function renderJavascript(outputInfo: OutputItem, container: HTMLElement): void {
const str = outputInfo.text();
const scriptVal = `<script type="application/javascript">${str}</script>`;
const script = document.createElement('script');
script.type = 'module';
script.textContent = outputInfo.text();
const element = document.createElement('div');
const trustedHtml = ttPolicy?.createHTML(scriptVal) ?? scriptVal;
const trustedHtml = ttPolicy?.createHTML(script.outerHTML) ?? script.outerHTML;
element.innerHTML = trustedHtml as string;
container.appendChild(element);
domEval(element);