Merge pull request #4925 from sbwalker/dev

improve reload script to replicate all attributes
This commit is contained in:
Shaun Walker 2024-12-18 10:32:12 -05:00 committed by GitHub
commit b8fd922b19
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -57,22 +57,15 @@ function replaceScript(script) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
var newScript = document.createElement("script"); var newScript = document.createElement("script");
newScript.async = false; // replicate attributes and content
if (script.type !== "") { for (let i = 0; i < script.attributes.length; i++) {
newScript.type = script.type; newScript.setAttribute(script.attributes[i].name, script.attributes[i].value);
} }
newScript.innerHTML = script.innerHTML;
if (script.src !== "") { // dynamically injected scripts cannot be async or deferred
newScript.src = script.src; newScript.async = false;
if (script.integrity !== "") { newScript.defer = false;
newScript.integrity = script.integrity;
}
if (script.crossorigin !== "") {
newScript.crossOrigin = script.crossOrigin;
}
} else {
newScript.innerHTML = script.innerHTML;
}
newScript.onload = () => resolve(); newScript.onload = () => resolve();
newScript.onerror = (error) => reject(error); newScript.onerror = (error) => reject(error);