// 页面加载时读取存储的配置 document.addEventListener('DOMContentLoaded', () => { chrome.storage.sync.get(['aiConfig', 'voiceEnabled'], (result) => { const config = result.aiConfig || {}; document.getElementById('apiUrl').value = config.apiUrl || DEFAULT_URL; document.getElementById('apiKey').value = config.apiKey || ""; document.getElementById('modelName').value = config.modelName || DEFAULT_MODEL; // 语音开关状态(默认为关闭) document.getElementById('voiceEnabled').checked = result.voiceEnabled || false; }); }); // 保存逻辑 document.getElementById('save').addEventListener('click', () => { const config = { apiUrl: document.getElementById('apiUrl').value.trim() || DEFAULT_URL, apiKey: document.getElementById('apiKey').value.trim(), modelName: document.getElementById('modelName').value.trim() || DEFAULT_MODEL }; const isVoiceEnabled = document.getElementById('voiceEnabled').checked; // 验证 API Key 是否填写 if (!config.apiKey) { showStatus("请输入 API Key", "#f56c6c"); return; } // 存储到 chrome.storage.sync chrome.storage.sync.set({ aiConfig: config, voiceEnabled: isVoiceEnabled }, () => { showStatus("✅ 配置已保存,刷新页面生效", "#67c23a"); }); }); function showStatus(text, color) { const status = document.getElementById('status'); status.textContent = text; status.style.color = color; // 3秒后清除提示 setTimeout(() => { status.textContent = ''; }, 3000); }