UNPKG

press-plus

Version:
46 lines (40 loc) 1.25 kB
/** * 动态加载 ChatSDK 脚本 * @param {string} src 脚本地址 * @returns {Promise} */ export function loadChatSDK(src) { return new Promise((resolve, reject) => { // 检查是否已加载 if (window.ChatSDK) { resolve(window.ChatSDK); return; } // 检查是否已有相同脚本正在加载 const existingScript = document.querySelector(`script[src="${src}"]`); if (existingScript) { existingScript.addEventListener('load', () => { if (window.ChatSDK) { resolve(window.ChatSDK); } else { reject(new Error('ChatSDK 加载失败:未找到 ChatSDK 对象')); } }); existingScript.addEventListener('error', () => reject(new Error('ChatSDK 脚本加载失败'))); return; } // 创建并加载脚本 const script = document.createElement('script'); script.src = src; script.async = true; script.onload = () => { if (window.ChatSDK) { resolve(window.ChatSDK); } else { reject(new Error('ChatSDK 加载失败:未找到 ChatSDK 对象')); } }; script.onerror = () => reject(new Error('ChatSDK 脚本加载失败')); document.head.appendChild(script); }); }