javascript - 如何使用 javascript 永久更改我网站中的 css 文件?
问题描述
我正在尝试向我的网站添加浅色/深色风格的功能。我编写了一个代码来在单击按钮时在两个样式表之间进行更改,但是每当我转到不同的路线时,样式都会恢复为常规样式。
Javascript:
function swapStyleSheet(sheet){
document.getElementById('pageStyle').setAttribute('href', sheet);
}
HTML:
<link rel="stylesheet" href="/stylesheets/light.css" id="pageStyle">
<body>
<li><a id="navLinks" onclick="swapStyleSheet('/stylesheets/light.css')">Light Style!</a></li>
<li><a id="navLinks" onclick="swapStyleSheet('/stylesheets/main.css')">Dark Style!</a></li>
</body>
解决方案
您可以使用Web Storage API做到这一点。
这类似于使用 cookie,但数据存储在浏览器中而不是服务器上。所有现代浏览器都支持。
JS:
function swapStyleSheet(sheet){
document.getElementById('pageStyle').setAttribute('href', sheet);
window.localStorage.setItem("pageStyle", sheet);
}
window.onload = function() {
swapStyleSheet(window.localStorage.getItem("pageStyle"));
}
HTML:
<li><a id="navLinks" onclick="swapStyleSheet('/stylesheets/light.css')">Light Style!</a></li>
<li><a id="navLinks" onclick="swapStyleSheet('/stylesheets/main.css')">Dark Style!</a></li>
推荐阅读
- visual-studio - 使用 Outlook 插件将旧电子邮件(> 6 个月)从 Outlook 复制到外部位置
- jquery - 单击时避免下拉子菜单元素关闭主下拉菜单
- javascript - 邮件订阅——成功与错误信息切换
- javascript - DoubleClick for publishers:显示自适应广告
- oracle - PL/SQL编写的最长公共子序列算法优化
- kubernetes - HPA 无法从自定义指标 API 获取指标
- ruby-on-rails - VCR.request_matcher.uri_without_params 方法,但用于忽略动态主体值
- javascript - 从可重用组件传递 Route 作为道具
- uwp - Hololens 中不需要注视应用程序窗口的语音/语音识别
- javascript - 如何在 Web 项目中像 div 标签一样使用 View