javascript - 使用 javascrtip 切换外部样式表并使用 localstorage 保存
问题描述
嗨,我在一个网站上这样做。
我希望刷新浏览器页面时不会删除更改。
非常感谢您的帮助。
Html:
<link id="change" rel="stylesheet" href="css/style.css">
In javascript:
$("#mobile-float").click(function() {
return (this.tog = !this.tog) ? addZonaDesk() : showZonaDesk();
});
function addZonaDesk(){
document.getElementById("style").href = "css/style.css?t=143";
}
function showZonaDesk(){
document.getElementById("style").href = "css/style1.css?t=143";
}
解决方案
// Get link element and the button
let link = document.getElementsByTagName('link')[0];
let btn = document.getElementById('btn');
// Save href values
let val1 = "css/style.css?t=143";
let val2 = "css/style1.css?t=143";
// Temp variable (just for checking)
let swapped = true;
// Pass the path to the function
const toggleDesk = (path) => {
// Set href
link.href = path;
// Save in the local storage
localStorage.setItem("myLink", path);
};
// Toggle link path values (for testing)
btn.addEventListener('click', () => {
swapped == false ? [toggleDesk(val1), swapped = true] : [toggleDesk(val2), swapped = false];
});
// Window onload:
window.addEventListener('load', () => {
// Check browser support for local storage
if (typeof(Storage) !== "undefined") {
// If there's a value saved, get it and set the link path
if(localStorage.getItem("myLink")) {
let path = localStorage.getItem("myLink");
link.href = path;
}
}
});
<!-- Note: add [type="text/html"] -->
<link type="text/html" rel="stylesheet" href="css/style.css">
<button id="btn">Click here</button>
推荐阅读
- ruby-on-rails - 回调在 Rails 5 中表现为事务
- r - as.graphicsAnnot(legend) 中的错误:缺少参数“legend”,没有默认值
- c - CS50 Pset 5 拼写器 Seg 错误
- python - pipenv:仅适用于已安装的文件夹?
- php - 从连接的时间戳变量中分离日期和时间 - PHP
- php - curl_exec 返回消息但未发送电子邮件
- chatbase - 有没有办法创建一个白标签聊天库报告给希望在我们的聊天机器人上看到他们的用户参与的客户
- ruby-on-rails - 使用 websockets 连接到远程服务器
- spring - 每个语句的 Spring Boot thymeleaf
- c++ - C++ 将静态多态类自动添加到子类的 constexpr 列表中