From 9a6ff704cd8429289c5376d3af5e4b8492df4773 Mon Sep 17 00:00:00 2001 From: Dawood Khan Date: Tue, 12 Dec 2023 17:00:44 -0500 Subject: [PATCH] Fix issue with `head` param when adding more than one script tag (#6639) * fix * Revert "fix" This reverts commit 86783c834ddfdff4eb34f1d55ded29f162493389. * fix * add changeset * fix * add external js file functionality * format --------- Co-authored-by: gradio-pr-bot --- .changeset/hip-needles-mate.md | 6 ++++++ js/app/src/Index.svelte | 19 ++++++++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 .changeset/hip-needles-mate.md diff --git a/.changeset/hip-needles-mate.md b/.changeset/hip-needles-mate.md new file mode 100644 index 000000000000..de8732f2f9e0 --- /dev/null +++ b/.changeset/hip-needles-mate.md @@ -0,0 +1,6 @@ +--- +"@gradio/app": patch +"gradio": patch +--- + +fix:Fix issue with `head` param when adding more than one script tag diff --git a/js/app/src/Index.svelte b/js/app/src/Index.svelte index 29a0c8347e9f..6c398c07d4b1 100644 --- a/js/app/src/Index.svelte +++ b/js/app/src/Index.svelte @@ -150,12 +150,21 @@ async function add_custom_html_head( head_string: string | null ): Promise { - const parser = new DOMParser(); if (head_string) { - const head_html = parser.parseFromString(head_string, "text/html").head - .firstChild; - if (head_html) { - document.head.append(head_html); + const parser = new DOMParser(); + const parsed_head_html = Array.from( + parser.parseFromString(head_string, "text/html").head.children + ); + + if (parsed_head_html) { + for (let head_element of parsed_head_html) { + let newScriptTag = document.createElement("script"); + Array.from(head_element.attributes).forEach((attr) => { + newScriptTag.setAttribute(attr.name, attr.value); + }); + newScriptTag.textContent = head_element.textContent; + document.head.appendChild(newScriptTag); + } } } }