From 0fd34e0c0b60fbec419517fbcf3819d77c37aca0 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Tue, 17 Dec 2024 20:55:41 +0800 Subject: [PATCH] feat: Execute inline scripts in advance --- src/lib/inject.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/lib/inject.ts b/src/lib/inject.ts index 494fca3..81705fb 100644 --- a/src/lib/inject.ts +++ b/src/lib/inject.ts @@ -78,14 +78,13 @@ export const InjectContext = (content: string) => { cleanInjectedResources() const externalScriptQueue: Promise[] = [] - const inlineScripts: HTMLScriptElement[] = [] Array.from(tempDiv.childNodes).forEach((node) => { if (node.nodeType === Node.ELEMENT_NODE) { const element = node as HTMLElement if (element.tagName === "SCRIPT" && !(element as HTMLScriptElement).src) { - // 收集内联脚本,稍后执行 - inlineScripts.push(element as HTMLScriptElement) + // 直接执行内联脚本 + executeInlineScript(element as HTMLScriptElement) } else { const handler = handlers[element.tagName] || handlers.DEFAULT externalScriptQueue.push(handler(element)) @@ -95,11 +94,7 @@ export const InjectContext = (content: string) => { } }) - // 等待外部脚本加载完成后再执行内联脚本 return Promise.all(externalScriptQueue) - .then(() => { - inlineScripts.forEach((script) => executeInlineScript(script)) - }) .then(() => { console.log("All resources have been injected successfully.") })