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); + } } } }