/** * 开关按钮与原有逻辑的桥接 * 保持原有的事件处理逻辑不变 */ (function() { 'use strict'; // DOM加载完成后初始化 document.addEventListener('DOMContentLoaded', function() { // 获取欢迎模式开关元素 const deepResearchToggle = document.getElementById('deepResearchToggle'); const showThinkingToggle = document.getElementById('showThinkingToggle'); // 获取聊天模式开关元素 const chatModeDeepResearchToggle = document.getElementById('chatModeDeepResearchToggle'); const chatModeShowThinkingToggle = document.getElementById('chatModeShowThinkingToggle'); // 获取原有的菜单项元素 const deepResearchItem = document.getElementById('deepResearchItem'); const showThinkingItem = document.getElementById('showThinkingItem'); const chatModeDeepResearchItem = document.getElementById('chatModeDeepResearchItem'); const chatModeShowThinkingItem = document.getElementById('chatModeShowThinkingItem'); // 获取状态显示元素 const deepResearchStatus = document.getElementById('deepResearchStatus'); const showThinkingStatus = document.getElementById('showThinkingStatus'); const chatModeDeepResearchStatus = document.getElementById('chatModeDeepResearchStatus'); const chatModeShowThinkingStatus = document.getElementById('chatModeShowThinkingStatus'); // 初始化开关状态为关闭 if (deepResearchToggle) { deepResearchToggle.checked = false; } if (showThinkingToggle) { showThinkingToggle.checked = false; } if (chatModeDeepResearchToggle) { chatModeDeepResearchToggle.checked = false; } if (chatModeShowThinkingToggle) { chatModeShowThinkingToggle.checked = false; } // 深度研究开关处理 if (deepResearchToggle && deepResearchItem) { // 标记避免循环触发 let isUpdatingFromToggle = false; deepResearchToggle.addEventListener('change', function() { if (isUpdatingFromToggle) return; // 设置标记 isUpdatingFromToggle = true; // 触发原有的点击事件 deepResearchItem.click(); // 延迟重置标记 setTimeout(() => { isUpdatingFromToggle = false; }, 100); }); // 监听原有逻辑的状态变化 const observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.type === 'childList' || mutation.type === 'characterData') { const status = deepResearchStatus ? deepResearchStatus.textContent : '关'; deepResearchToggle.checked = status === '开'; // 同步到聊天模式的开关 if (chatModeDeepResearchToggle) { chatModeDeepResearchToggle.checked = status === '开'; } } }); }); if (deepResearchStatus) { observer.observe(deepResearchStatus, { childList: true, characterData: true, subtree: true }); } } // 显示思考开关处理 - 已禁用 if (showThinkingToggle) { // 禁用开关,不添加任何事件监听 showThinkingToggle.disabled = true; showThinkingToggle.checked = false; // 始终保持关闭状态 } // 聊天模式深度研究开关处理 if (chatModeDeepResearchToggle && chatModeDeepResearchItem) { // 标记避免循环触发 let isUpdatingFromToggle = false; chatModeDeepResearchToggle.addEventListener('change', function() { if (isUpdatingFromToggle) return; // 设置标记 isUpdatingFromToggle = true; // 触发原有的点击事件 chatModeDeepResearchItem.click(); // 延迟重置标记 setTimeout(() => { isUpdatingFromToggle = false; }, 100); }); // 监听原有逻辑的状态变化 const observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.type === 'childList' || mutation.type === 'characterData') { const status = chatModeDeepResearchStatus ? chatModeDeepResearchStatus.textContent : '关'; chatModeDeepResearchToggle.checked = status === '开'; // 同步两个模式的开关状态 if (deepResearchToggle) { deepResearchToggle.checked = status === '开'; } } }); }); if (chatModeDeepResearchStatus) { observer.observe(chatModeDeepResearchStatus, { childList: true, characterData: true, subtree: true }); } } // 聊天模式显示思考开关处理 - 已禁用 if (chatModeShowThinkingToggle) { // 禁用开关,不添加任何事件监听 chatModeShowThinkingToggle.disabled = true; chatModeShowThinkingToggle.checked = false; // 始终保持关闭状态 } // 阻止菜单项本身的点击事件冒泡到开关 [deepResearchItem, showThinkingItem, chatModeDeepResearchItem, chatModeShowThinkingItem].forEach(item => { if (item) { const originalClick = item.onclick; item.onclick = function(e) { // 如果点击的是开关,不执行原有逻辑 if (e.target.closest('.switch')) { return; } // 否则执行原有逻辑 if (originalClick) { originalClick.call(this, e); } }; } }); }); })();