Typecho主题白天夜晚模式切换失效怎么办?

typecho主题白天夜晚模式切换失效?刷新后模式丢失?

Typecho主题白天夜晚模式切换失效怎么办?

许多Typecho用户在尝试添加白天/夜晚模式切换功能后,发现切换效果无法持久,刷新页面后设置便会失效。本文提供解决方案,帮助您解决此问题。

问题描述:

按照网上教程添加白天夜晚模式切换代码到footer.php后,刷新或点击链接,模式设置无法保存。

解决方案:

此问题通常是由于没有正确保存模式设置到浏览器Cookie导致的。以下步骤将引导您修复此问题:

修改footer.php:footer.php底部添加以下JavaScript代码,用于读取和设置Cookie:

window.onload = function() {  let mode = getCookie('read-mode');  if (mode === 'night') {    document.body.classList.add('night-mode');  } else {    document.body.classList.remove('night-mode');  }};function setCookie(name, value, days) {  let expires = '';  if (days) {    let date = new Date();    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));    expires = '; expires=' + date.toUTCString();  }  document.cookie = name + '=' + (value || '') + expires + '; path=/';}function getCookie(name) {  let nameEQ = name + '=';  let ca = document.cookie.split(';');  for (let i = 0; i < ca.length; i++) {    let c = ca[i];    while (c.charAt(0) === ' ') c = c.substring(1, c.length);    if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);  }  return null;}//  添加切换模式的事件监听器 (假设您已有切换按钮,并使用id="mode-switch")document.getElementById('mode-switch').addEventListener('click', function() {  let currentMode = getCookie('read-mode');  let newMode = currentMode === 'night' ? '' : 'night';  setCookie('read-mode', newMode, 365); // 设置Cookie,有效期为一年  location.reload(); // 刷新页面以应用新的模式});

修改function.php: 修改function.php中的getReadMode()函数,使其能够正确处理Cookie:

function getReadMode($icon = false) {    $class = isset($_COOKIE['read-mode']) ? $_COOKIE['read-mode'] : ''; // 获取cookie,如果不存在则为空字符串    if ($icon) {        $class = $class === 'night' ? 'fa fa-moon-o' : 'fa fa-sun-o';    } else {        $class = $class === 'night' ? 'night-mode' : '';    }    echo $class;}

请确保您的主题CSS文件中定义了.night-mode类,用于控制夜晚模式的样式。 上述代码添加了setCookie函数用于设置cookie,并修改了getReadMode函数使其更健壮,并添加了页面刷新,以立即反映模式变化。 最后,添加了一个事件监听器示例,假设您有一个id为mode-switch的按钮来切换模式。 请根据您的实际情况调整代码。

通过以上修改,您的Typecho主题白天夜晚模式切换功能应该能够正常工作并保持设置了。 如果问题仍然存在,请检查您的主题代码,确保night-mode类应用正确,并且JavaScript代码正确地插入到footer.php中。

以上就是Typecho主题白天夜晚模式切换失效怎么办?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1253778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月10日 01:17:39
下一篇 2025年12月10日 01:17:51

相关推荐

  • 程序员技能入门,有哪些适合的小项目可以接?

    程序员技能提升与项目实践 一位初级程序员希望通过接一些小项目来提升技能和经验。他的技能水平如下:前端(JavaScript、CSS、HTML基础,Vue2和React仅了解入门知识);后端(ThinkPHP入门);运维(基础薄弱)。 针对他的技能水平,以下是一些合适的项目建议,兼顾学习和实践: 小型…

    2025年12月10日
    000
  • CentOS7下Zabbix安装界面CSS加载失败如何排查?

    CentOS7 Zabbix安装界面CSS加载失败问题排查指南 在CentOS 7环境下,使用Apache、PHP 7.3.5、Zabbix 5.0和MySQL 5.7搭建Zabbix监控系统后,部分用户反映Zabbix前端界面CSS样式加载失败,导致页面显示异常(布局错乱,样式缺失等)。本文将分析…

    2025年12月10日
    000
  • Apache或Nginx与PHP是如何协同工作的?mod_php5和php-cgi有什么区别?

    apache 或 nginx 如何与 php 协同工作:深入探讨 mod_php5 和 php-cgi 的差异 Apache 和 Nginx 作为 Web 服务器,本身无法直接处理 PHP 代码。它们负责接收 HTTP 请求和处理静态资源(如 HTML、CSS、JavaScript)。要运行 PHP…

    2025年12月10日
    000
  • CentOS 7下Zabbix安装界面CSS加载失败如何排查?

    centos 7下zabbix安装界面css加载失败问题排查与解决 在CentOS 7环境下,使用Apache、PHP 7.3.5、Zabbix 5.0和MySQL 5.7搭建Zabbix监控系统时,部分用户遇到Zabbix安装界面CSS样式加载失败,导致页面布局混乱,样式缺失的问题。本文分析此问题…

    2025年12月10日
    000
  • 如何将Vue打包后的前端项目与Laravel后端整合部署?

    Vue前端项目与Laravel后端整合部署指南 本文介绍如何将已打包的Vue.js后台管理系统与Laravel API后端进行整合部署。核心在于正确配置Vue项目打包输出文件(dist文件夹)以及Web服务器(例如Nginx)。 Vue项目打包后生成的dist文件夹包含所有静态文件(HTML、CSS…

    2025年12月10日
    000
  • PHP字符串高效分割与对比:如何快速高亮显示长字符串中重复的部分?

    PHP文本处理中,字符串分割和对比是常见操作。本文详解如何高效分割长字符串,并与目标字符串对比,高亮显示重复部分。 示例任务:将长字符串$str分割成15字符长度的子串,并与字符串$aa对比,高亮显示$aa中与$str子串重复的部分。 传统方法使用循环和mb_substr逐个分割对比,效率低下。改进…

    2025年12月10日
    000
  • Dcat Admin表单多行布局下,Radio单选按钮如何实现联动?

    Dcat Admin表单多行布局下Radio单选按钮联动解决方案 在Dcat Admin框架下构建表单时,实现表单元素联动,例如根据单选按钮(Radio)的选择动态显示或隐藏其他字段,经常会遇到问题,尤其是在多行布局下。本文将解决Dcat Admin多行布局中Radio单选按钮联动失效的问题。 问题…

    2025年12月10日
    000
  • 净化HTML,守护网站安全:Mews/Purifier 的应用实践

    几个月前,我的网站上线了一个用户评论功能。起初一切顺利,直到有一天,我发现网站上出现了恶意脚本,这些脚本能够窃取用户的Cookie和其他敏感信息。经过排查,我发现这些恶意代码都隐藏在用户提交的评论内容中,它们巧妙地伪装成正常的HTML代码,绕过了我之前简单的HTML过滤机制。 这让我意识到,仅仅依靠…

    2025年12月10日
    000
  • 高效文件查找:使用Webmozart/Glob库简化你的PHP项目

    我最近参与了一个大型PHP项目的开发,需要从项目根目录下查找所有.css文件,包括嵌套在子目录中的文件。 一开始我尝试使用PHP内置的glob()函数,但它只能查找当前目录下的文件,无法递归搜索子目录。这导致我不得不编写复杂的递归函数来遍历整个目录结构,代码冗长且难以维护。 为了解决这个问题,我找到…

    2025年12月10日
    000
  • ModStart项目开发:如何高效管理静态资源?

    ModStart项目:优化静态资源管理策略 高效管理ModStart项目中的静态资源(CSS、JavaScript、图片等)对开发效率和项目性能至关重要。本文将介绍一些最佳实践,帮助您优化静态资源管理。 ModStart框架本身不强制使用特定方法,您可以根据项目规模和个人喜好选择。但为了保证效率和代…

    2025年12月10日
    000
  • 安全地逃逸HTML:Laminas Escaper的实践指南

    在Web开发中,安全始终是重中之重。而跨站脚本攻击(XSS)是Web应用中最常见的安全漏洞之一。XSS攻击允许攻击者将恶意JavaScript代码注入到网页中,从而窃取用户Cookie、会话ID等敏感信息,甚至完全控制用户的浏览器。 为了防止XSS攻击,我们需要对用户提交的数据进行严格的转义。PHP…

    2025年12月10日
    000
  • 告别繁琐的PDF生成:使用mPDF库简化你的工作流程

    最近项目中需要生成大量的PDF报告,这些报告包含复杂的格式、图片和表格。最初我尝试使用一些简单的PDF生成库,但它们在处理HTML和CSS时表现不佳,生成的PDF文件排版混乱,难以满足需求。此外,处理中文等非ASCII字符也成为一大难题。我尝试了各种方法,包括调整CSS样式、手动处理字符编码等等,但…

    2025年12月10日
    000
  • 高效识别用户设备:Jenssegers/Agent 库的实际应用

    最近我负责一个项目,需要根据用户的设备类型提供不同的页面展示和功能。起初,我尝试使用一些简单的 $_SERVER 变量判断,例如检查 User-Agent 字符串中是否包含 “iPhone” 或 “Android” 等关键词。但这种方法非常脆弱,容易出…

    2025年12月10日
    000
  • Dcat Admin多行表单布局下Radio联动失效如何解决?

    Dcat Admin框架下多行表单布局中Radio联动失效的解决方法 Dcat Admin是一个优秀的Laravel后台管理系统,其表单组件功能丰富。然而,在实际应用中,用户可能会遇到一些问题,例如在多行布局下,Radio单选框的联动功能失效。本文将分析此问题并提供解决方案。 问题描述: 在Dcat…

    2025年12月10日
    000
  • phpMyAdmin界面优化技巧,打造个性化管理界面

    可以通过修改phpmyadmin的配置文件config.inc.php和css文件实现个性化定制。1. 修改config.inc.php文件中的参数,例如$cfg[‘theme’]来改变主题或$cfg[‘serverdefault’]设置默认服务器;2…

    2025年12月10日
    000
  • PHP代码规范:如何使用编译杂注标记内联代码?

    php代码规范:内联代码的编译器指令 许多PHP开发者在学习代码规范时,可能会遇到对“内联代码”和其标记方法的困惑。本文将解释如何在PHP代码中处理内联代码,并探讨规范中提到的“编译杂注”的含义。 “内联代码”指的是直接嵌入PHP代码中的其他语言代码片段,例如JavaScript、HTML或CSS。…

    2025年12月10日
    000
  • Go语言如何实现动态方法调用?

    Go语言动态方法调用:巧用反射机制实现灵活调用 Go语言的静态特性决定了其方法名在编译期即已确定,因此无法直接使用变量作为方法名进行调用,这与PHP等动态语言有所不同。然而,通过Go语言强大的反射机制,我们可以实现类似的动态方法调用效果。 本文将探讨如何利用反射机制在Go中动态调用方法,并分析其优缺…

    2025年12月10日
    000
  • PHP内联代码如何正确标记:编译杂注的实际应用是什么?

    PHP内联代码的最佳实践:清晰注释与代码结构 许多PHP开发者在处理内联代码时,常常面临代码可读性和维护性的挑战。本文探讨如何通过清晰的注释和合理的代码结构来优化内联代码,提升代码质量。 所谓“内联代码”,指的是嵌入在PHP代码中的其他语言代码片段,例如HTML、JavaScript或CSS。这些代…

    2025年12月10日
    000
  • Go语言如何根据变量名动态调用方法?

    Go语言动态方法调用:巧用反射机制,灵活执行函数 Go语言与PHP在动态调用方法方面有所差异。PHP可以直接使用变量作为方法名,而Go语言则需要借助反射机制实现类似功能。本文将详细讲解如何利用Go语言的反射机制,根据变量名动态调用方法,解决实际开发中遇到的问题。 假设我们需要根据r.FormValu…

    2025年12月10日
    000
  • 如何高效提取网页分页链接?

    网页数据采集:精准提取分页链接 本文介绍如何从网页HTML代码中高效提取分页链接。 我们将以一个实际案例为例,演示如何从包含分页链接的HTML代码中提取所有页码对应的链接。 该HTML代码包含一个div容器,其中包含页码链接以及“上一页”和“下一页”链接。 示例代码使用了QueryList PHP库…

    2025年12月10日
    000

发表回复

登录后才能评论
关注微信