# Tecnoblog 使用 Discourse 评论系统的体验

**URL:** https://meta.discourse.org/t/tecnoblogs-experience-with-discourse-comments/400721
**Category:** Feature
**Tags:** embedding
**Created:** [2026年四月15日 18:15 UTC](https://meta.discourse.org/t/tecnoblogs-experience-with-discourse-comments/400721 "2026-04-15T18:15:07Z")
**Posts on this page:** 1
**Showing post:** 29

<div class="post-metadata">

### Author: ![stromfeldt](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stromfeldt/32/223364_2.png) [@stromfeldt](https://meta.discourse.org/u/stromfeldt)
#### Post date: [2026年四月21日 02:54 UTC](https://meta.discourse.org/t/tecnoblogs-experience-with-discourse-comments/400721/29 "2026-04-21T02:54:46Z")

</div>

> [@Falco](#):
>
> 如果您的博客和 Discourse 都使用跟随系统的自动深色模式，它们将保持同步。
> 
> 我们在 [自动深色模式配色方案切换](https://meta.discourse.org/t/automatic-dark-mode-color-scheme-switching/161593) 中为 Discourse 添加了自动深色模式。

是的，但如果我理解并回忆正确的话，这使 Discourse 能够检测操作系统是否正在使用深色模式，并相应地进行调整。[我发起的帖子](https://meta.discourse.org/t/automatic-dark-mode-for-embedded-comments-as-well/184347) 是对您链接的帖子的回应（并且也链接了它），涉及的是博客中手动在浅色和深色模式之间切换的切换按钮/控件（无论操作系统的模式如何）。这听起来对吗（并且反过来使我的上一个问题变得相关）？

为了清楚起见，这是我让人为我的博客编写的脚本，我想现在需要进行一些调整（也许只需要更改几个类，我不确定）。

```javascript
<style>:root.dark{background: #1D2224}</style>
<script>
    const discourseUrl = 'https://ff2f.discourse.group';
    const clearDarkModeThrottle = () => window.darkThrottled = false;
    window.isDark = false;
    window.discourseLoaded = false;
    window.setDarkMode = state => {
        window.isDark = state;
        window.darkThrottled = true;
        localStorage.setItem('darkmode-enabled', state);
        Array.from(document.getElementsByClassName('dm-input')).forEach(element => element.checked = state);
        document.documentElement.classList[state ? 'add' : 'remove']('dark');
        setTimeout(clearDarkModeThrottle, 250);
        window.discourseLoaded && setIframeStyle();
    };
    let sub = () => {};
    if (localStorage.getItem('darkmode-enabled') === "true") {
        document.documentElement.classList.add('dark');
        // 在 domContentLoaded 后更新元素
        sub = () => window.setDarkMode(true);
    }
    document.addEventListener('DOMContentLoaded', () => {
        Array.from(document.getElementsByClassName('darkmode-toggle'))
            .forEach(element => element.onchange = darkmodeToggled);
        function darkmodeToggled() {
            const input = this.querySelector('input');
            window.darkThrottled ? (input.checked = !input.checked) : window.setDarkMode(input.checked);
        }
        sub();
        sub = null;
    });

    const handleMessageListener = (event) => {
        var origin = event.origin;
        if (origin === discourseUrl) {
            setIframeStyle();
            window.discourseLoaded = true;
        }
    };

    const setIframeStyle = () => {
        const iframe = document.getElementById("discourse-embed-frame");
        if (iframe && iframe.contentWindow) {
            iframe.contentWindow.postMessage(
                window.isDark ? "dark" : "light",
                discourseUrl
            );
        }
    };

  window.addEventListener("message", handleMessageListener);
</script>

```

---

_[View the full topic](https://meta.discourse.org/t/tecnoblogs-experience-with-discourse-comments/400721)._
