refactor: repartition server-side and client-side code

This commit is contained in:
LIlGG
2025-10-11 18:26:07 +08:00
parent 7acc4949fb
commit e9b573a276
309 changed files with 631 additions and 962 deletions

View File

@@ -0,0 +1,33 @@
export const executeScripts = (element: Element) => {
if (!element) {
return;
}
const scripts = element.getElementsByTagName('script');
const scriptArray = Array.from(scripts);
for (let i = 0; i < scriptArray.length; i++) {
const oldScript = scriptArray[i];
executeScript(oldScript);
}
};
export const executeScript = (scriptElement: HTMLScriptElement) => {
const newScript = document.createElement('script');
Array.from(scriptElement.attributes).forEach((attr) => {
newScript.setAttribute(attr.name, attr.value);
});
if (scriptElement.src) {
newScript.src = scriptElement.src;
} else {
if (scriptElement.textContent?.trim()?.startsWith('(function() {')) {
newScript.textContent = scriptElement.textContent;
} else {
newScript.textContent = `(function() { ${scriptElement.textContent} })();`;
}
}
if (scriptElement.parentNode) {
scriptElement.parentNode.replaceChild(newScript, scriptElement);
}
};