From version 13.1
edited by Jiahao Lai
on 2026/03/26 15:47
on 2026/03/26 15:47
Change comment:
There is no comment for this version
To version 17.1
edited by Jiahao Lai
on 2026/03/26 16:12
on 2026/03/26 16:12
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -187,60 +187,24 @@ 187 187 {{/velocity}} 188 188 189 189 190 - 191 191 {{html clean="false"}} 192 -< div id="llm-chat-widget"style="position:fixed;right:20px;bottom:20px;z-index:9999;"></div>193 - 191 +<script src="/webjars/wiki%3Awonway/marked/4.0.2/marked.min.js"></script> 192 +<script src="/webjars/wiki%3Awonway/dompurify/2.3.10/purify.min.js"></script> 194 194 <script> 194 +// 初始化 AI 浮窗(主 wiki 专用,直接复用子 wiki 资源) 195 195 document.addEventListener('DOMContentLoaded', function() { 196 - // 延长等待时间,确保配置和依赖完全加载 197 - setTimeout(async () => { 198 - try { 199 - // 1. 加载 marked.js 依赖 200 - await new Promise((resolve) => { 201 - const s = document.createElement('script'); 202 - s.src = 'https://docs.we-con.com.cn/webjars/wiki%3Awonway/marked/4.0.2/marked.min.js'; 203 - s.onload = resolve; 204 - document.body.appendChild(s); 205 - }); 196 + // 强制加载浮窗样式 197 + const link = document.createElement('link'); 198 + link.rel = 'stylesheet'; 199 + link.href = '/webjars/wiki%3Awonway/application-ai-llm-chat-webjar/0.7.2/chatWidget.css'; 200 + document.head.appendChild(link); 206 206 207 - // 2. 加载 CSS 208 - await new Promise((resolve) => { 209 - const l = document.createElement('link'); 210 - l.rel = 'stylesheet'; 211 - l.href = 'https://docs.we-con.com.cn/webjars/wiki%3Awonway/application-ai-llm-chat-webjar/0.7.2/chatWidget.css'; 212 - l.onload = resolve; 213 - document.head.appendChild(l); 214 - }); 215 - 216 - // 3. 加载 chatWidget.js 217 - await new Promise((resolve) => { 218 - const s = document.createElement('script'); 219 - s.src = 'https://docs.we-con.com.cn/webjars/wiki%3Awonway/application-ai-llm-chat-webjar/0.7.2/chatWidget.js'; 220 - s.onload = resolve; 221 - document.body.appendChild(s); 222 - }); 223 - 224 - // 4. 循环等待,直到 LLM 配置就绪 225 - let retries = 0; 226 - const maxRetries = 20; // 最多等 20*200ms = 4秒 227 - const waitForLLM = () => { 228 - if (window.LLMChatWidget && typeof LLMChatWidget.init === 'function') { 229 - LLMChatWidget.init(); 230 - console.log("✅ 浮窗启动成功!"); 231 - } else if (retries < maxRetries) { 232 - retries++; 233 - setTimeout(waitForLLM, 200); 234 - } else { 235 - throw new Error("LLM 配置超时未就绪"); 236 - } 237 - }; 238 - waitForLLM(); 239 - } catch (e) { 240 - console.error("❌ 最终失败", e); 241 - alert("浮窗加载失败:" + (e.message || "未知错误")); 242 - } 243 - }, 1500); // 延长初始等待时间 202 + // 加载浮窗主脚本 203 + const script = document.createElement('script'); 204 + script.src = '/webjars/wiki%3Awonway/application-ai-llm-chat-webjar/0.7.2/chatWidget.js'; 205 + script.dataset.wikiName = 'wonway'; 206 + script.dataset.baseUrl = '/xwiki/'; 207 + document.body.appendChild(script); 244 244 }); 245 245 </script> 246 246 {{/html}}