From c2293f96cb8c9f86569fac4a7f087c2413011abf Mon Sep 17 00:00:00 2001 From: lkddi Date: Sun, 15 Mar 2026 17:05:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20window.Alpine=20=E9=98=B2=E6=AD=A2=20defer?= =?UTF-8?q?=20=E5=8A=A0=E8=BD=BD=E6=97=B6=20Alpine=20=E6=9C=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chat/partials/user-actions.blade.php | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/resources/views/chat/partials/user-actions.blade.php b/resources/views/chat/partials/user-actions.blade.php index 35916fa..0536094 100644 --- a/resources/views/chat/partials/user-actions.blade.php +++ b/resources/views/chat/partials/user-actions.blade.php @@ -55,9 +55,16 @@ // 剥除可能从消息内容带入的装饰括号(如 【username】 → username) username = String(username).replace(/^[\u3010\[【\s]+|[\u3011\]】\s]+$/g, '').trim(); if (!username) return; + + // Alpine.js 使用 defer 异步加载,检查是否已完成初始化 + if (!window.Alpine) { + console.warn('[openUserCard] Alpine.js 尚未初始化,请稍后再试'); + return; + } + const el = document.getElementById('user-modal-container'); if (el) { - const data = Alpine.$data(el); + const data = window.Alpine.$data(el); if (data) data.fetchUser(username); } } @@ -200,7 +207,7 @@ // 打开专属离婚确认弹窗 const modal = document.getElementById('divorce-confirm-modal'); if (modal && window.Alpine) { - Alpine.$data(modal).open(marriageId, divorceConfig); + window.Alpine.$data(modal).open(marriageId, divorceConfig); } }, @@ -1199,11 +1206,10 @@ */ function openRewardModal(username) { const el = document.getElementById('reward-modal-container'); - if (el) { - const data = Alpine.$data(el); - if (data) { - data.open(username); - } + if (!window.Alpine || !el) return; + const data = window.Alpine.$data(el); + if (data) { + data.open(username); } }