diff --git a/web/src/components/HeaderBar.js b/web/src/components/HeaderBar.js index b7cf9061..981a34fb 100644 --- a/web/src/components/HeaderBar.js +++ b/web/src/components/HeaderBar.js @@ -118,13 +118,19 @@ const HeaderBar = () => { useEffect(() => { if (theme === 'dark') { document.body.setAttribute('theme-mode', 'dark'); + } else { + document.body.removeAttribute('theme-mode'); + } + // 发送当前主题模式给子页面 + const iframe = document.querySelector('iframe'); + if (iframe) { + iframe.contentWindow.postMessage({ themeMode: theme }, '*'); } if (isNewYear) { console.log('Happy New Year!'); } - }, []); - + }, [theme]); // 监听 theme-mode 的变化 return ( <> diff --git a/web/src/pages/Home/index.js b/web/src/pages/Home/index.js index 38029528..ad7cba32 100644 --- a/web/src/pages/Home/index.js +++ b/web/src/pages/Home/index.js @@ -35,6 +35,19 @@ const Home = () => { } setHomePageContent(content); localStorage.setItem('home_page_content', content); + + // 如果内容是 URL,则发送主题模式 + if (data.startsWith('https://')) { + const iframe = document.querySelector('iframe'); + if (iframe) { + const theme = localStorage.getItem('theme-mode') || 'light'; + // 测试是否正确传递theme-mode给iframe + // console.log('Sending theme-mode to iframe:', theme); + iframe.onload = () => { + iframe.contentWindow.postMessage({ themeMode: theme }, '*'); + }; + } + } } else { showError(message); setHomePageContent('加载首页内容失败...');