From e7e1b4c43f52172cbbd9806a8a1d7cd8684004e0 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sun, 6 Jul 2025 06:58:15 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20PWA=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=99=A8=E5=88=9D=E5=A7=8B=E5=8C=96=E5=9C=A8DOM=E5=B7=B2?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E6=97=B6=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复DOMContentLoaded事件监听器可能不触发的问题 - 检查document.readyState状态,如果DOM已就绪则立即初始化 - 确保PWA状态管理器在所有情况下都能正确初始化 - 解决main.ts作为模块加载时的时序问题 --- src/main.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main.ts b/src/main.ts index be10407b..28ccf4f0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -96,8 +96,8 @@ app // 5. 初始化PWA状态管理器 let pwaStateController: PWAStateController | null = null -// 等待DOM准备就绪后初始化状态管理 -document.addEventListener('DOMContentLoaded', () => { +// PWA状态管理器初始化函数 +const initializePWAStateManager = () => { // 检查是否在PWA模式下运行 const isPWA = window.matchMedia('(display-mode: standalone)').matches || (window.navigator as any).standalone || @@ -129,7 +129,16 @@ document.addEventListener('DOMContentLoaded', () => { } else { console.log('非PWA模式,跳过状态管理器初始化') } -}) +} + +// 检查DOM状态并初始化PWA状态管理 +if (document.readyState === 'loading') { + // DOM尚未加载完成,添加事件监听器 + document.addEventListener('DOMContentLoaded', initializePWAStateManager) +} else { + // DOM已经准备就绪,立即初始化 + initializePWAStateManager() +} // 导出状态管理器供其他模块使用 export { pwaStateController }