本地存储,通过javascript保存CSS文件名
local storage, save css filename through javascript
我正在制作一个页面,用户可以通过下拉菜单更改页面上的几个外观/样式,从而更改css文件名。我已经设法通过下拉菜单改变样式表,但我现在想保存当前的css文件在本地存储。例如,如果用户更改为stylesheet3.css(通过下拉菜单),那么这种样式/外观将在下次用户访问页面时设置。下面是我的代码:
HTML:<link id="myStyleSheet" href="stylesheet1.css" rel="stylesheet" type="text/css"> I put an id in stylesheet
<div id="changeLook">
Change style:
<select id="changeStyle" onchange="changeStyleFunction()">
<option value="stylesheet1.css">Style 1</option>
<option value="stylesheet2.css">Style 2</option>
<option value="stylesheet3.css">Style 3</option>
<option value="stylesheet4.css">Style 4</option>
</select>
</div>
JavaScript: function changeStyleFunction() {
var href;
var value = document.getElementById("changeStyle").value;
localStorage.setItem("GetData" , value); //Here is my biggest problem???
href = value;
document.getElementById('myStyleSheet').href = href;
}
我如何使当前样式表(值)进入到localStore?我是本地仓库新来的…谢谢!
首先,您应该确保文档已加载,然后从localstorage读取值:
main.js:
(function () {
var DEFAULT_CSS = 'stylesheet.css',
styleElement,
styleOption;
document.addEventListener('DOMContentLoaded', function (e) {
var styleElement = document.getElementById('myStyleSheet'),
styleOption = document.getElementById("changeStyle"),
currentCSS = localStorage.getItem('GetData') || DEFAULT_CSS;
styleElement.href = currentCSS;
styleOption.value = currentCSS;
styleOption.addEventListener('change', changeStyleFunction);
});
function changeStyleFunction() {
var newCSS = styleOption.value;
localStorage.setItem('GetData', newCSS);
styleElement.href = newCSS;
}
}());
index . html:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link id="myStyleSheet" href="stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="changeLook">
Change style: <select id="changeStyle">
<option value="stylesheet.css">Default Style</option>
<option value="stylesheet1.css">Style 1</option>
<option value="stylesheet2.css">Style 2</option>
<option value="stylesheet3.css">Style 3</option>
</select>
</div>
<script src="main.js" type="text/javascript"></script>
</body>
</html>
stylesheet.css:
#changeLook {
background-color: #eee;
}
stylesheet1.css:
#changeLook {
background-color: #ff0000;
}
stylesheet2.css:
#changeLook {
background-color: #00ff00;
}
stylesheet3.css:
#changeLook {
background-color: #0000ff;
}
编辑:我添加了所有的文件。
EDIT2:是的,这是一个错误,我忘记在文档准备上分配变量,对不起,现在应该可以了
试试这个:
<script>
document.addEventListener("DOMContentLoaded", function()
{
var defaultCSS="defaultCSS.css";
var yourHref=localStorage.getItem("GetData");
if(typeof yourHref === 'undefined' || yourHref === null)
{
document.getElementById('myStyleSheet').href=defaultCSS;
}
else
{
document.getElementById('myStyleSheet').href=yourHref;
}
});
</script>
相关文章:
- 正在保存CSS State Jquery Cookie
- 保存元素的 CSS 并在以后重新应用
- iFrame 中的实时预览和保存样式.css每 30 秒一次
- Javascript使用javascript按钮更改CSS页面,并根据cookie保存
- 升华,保存.style-sending.css
- 将规则添加到CSS类,然后保存样式表
- 用于可拖动页面元素的css框架和用于服务器端位置保存的回调
- 使用jquery/javascript刷新时保存css类
- 如何永久更改CSS文件,以便将更改保存在服务器上的实际文件中?
- 如何获取css代码并保存在字符串中
- 在浏览器中保存CSS文件以供将来使用
- 保存less.js生成的.css文件
- 使用CSS滤镜后保存图像
- 在本地存储中保存 css 类的当前状态时遇到问题
- 如何保存/导出内联SVG样式的css从浏览器到图像文件
- 敲除js-css biniding不't保存更改
- jQuery - 有没有办法“保存”dom元素(css)的状态并恢复到保存的状态等
- 捕捉/保存/导出应用了CSS滤镜效果的图像
- 传递CSS属性以将其保存到MySQL数据库的方法是什么?
- 本地存储,通过javascript保存CSS文件名