从 localStorage.getItem 中获取缓存并在body标签中使用
时间: 2024-02-05 14:12:51 浏览: 107
可以使用以下代码从 `localStorage` 中获取缓存并在 `body` 标签中使用:
```javascript
// 从 localStorage 获取缓存数据
const cachedData = localStorage.getItem('cachedData');
if (cachedData) {
// 将缓存数据添加到 body 标签中
document.querySelector('body').innerHTML += cachedData;
}
```
需要注意的是,这种做法可能会引起 XSS(跨站脚本攻击)风险,因为如果缓存中的数据被篡改,那么恶意代码就可能被注入到页面中。因此,建议对缓存数据进行校验和过滤,确保数据的完整性和安全性。
相关问题
vue项目中,两个兄弟页面,首先在a页面中定义一个变量存储在本地缓存中,其次在b页面改变缓存中的变量的值,需要a页面也能监听到b页面变量的改变,同时a页面使用完整实例代码
在a页面中定义一个变量存储在本地缓存中:
```javascript
// 存储数据到本地缓存
localStorage.setItem('myData', JSON.stringify({name: '张三', age: 18}));
// 读取本地缓存中的数据
let myData = JSON.parse(localStorage.getItem('myData'));
```
在b页面中改变缓存中的变量的值:
```javascript
// 读取本地缓存中的数据
let myData = JSON.parse(localStorage.getItem('myData'));
// 修改数据
myData.name = '李四';
// 存储数据到本地缓存
localStorage.setItem('myData', JSON.stringify(myData));
```
需要a页面也能监听到b页面变量的改变,可以使用Vue.js的`watch`方法来监控变量的改变:
```javascript
// 定义Vue实例
new Vue({
el: '#app',
data: {
myData: {}
},
created() {
// 读取本地缓存中的数据
this.myData = JSON.parse(localStorage.getItem('myData'));
// 监听变量的改变
this.$watch('myData', (newVal, oldVal) => {
console.log('myData changed:', newVal, oldVal);
}, { deep: true }); // 需要深度监听对象的属性变化
},
methods: {
// 修改myData.name的值,并存储到本地缓存
changeName() {
this.myData.name = '王五';
localStorage.setItem('myData', JSON.stringify(this.myData));
}
}
});
```
完整实例代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vue页面间通信</title>
</head>
<body>
<div id="app">
<p>姓名:{{myData.name}}</p>
<p>年龄:{{myData.age}}</p>
<button @click="changeName">修改姓名</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
// 定义Vue实例
new Vue({
el: '#app',
data: {
myData: {}
},
created() {
// 读取本地缓存中的数据
this.myData = JSON.parse(localStorage.getItem('myData'));
// 监听变量的改变
this.$watch('myData', (newVal, oldVal) => {
console.log('myData changed:', newVal, oldVal);
}, { deep: true }); // 需要深度监听对象的属性变化
},
methods: {
// 修改myData.name的值,并存储到本地缓存
changeName() {
this.myData.name = '王五';
localStorage.setItem('myData', JSON.stringify(this.myData));
}
}
});
</script>
</body>
</html>
```
html背景自动换,html页面换皮肤颜色、背景图片(更换页面背景,常驻缓存)刷新保存...
要实现HTML背景自动换、换皮肤颜色和更换页面背景图片,可以使用JavaScript来实现。以下是实现的步骤:
1. 在HTML中引入JavaScript文件:
```
<script type="text/javascript" src="background.js"></script>
```
2. 在JavaScript文件中设置颜色和背景图片的数组:
```
var colors = ['red', 'blue', 'green'];
var images = ['image1.jpg', 'image2.jpg', 'image3.jpg'];
```
3. 编写函数来随机选择数组中的颜色和图片:
```
function changeBackground() {
var randomColor = colors[Math.floor(Math.random() * colors.length)];
var randomImage = images[Math.floor(Math.random() * images.length)];
document.body.style.backgroundColor = randomColor;
document.body.style.backgroundImage = "url('" + randomImage + "')";
}
```
4. 在页面加载时调用函数,并将颜色和图片的选择保存在本地缓存中:
```
window.onload = function() {
if(localStorage.getItem('color') === null && localStorage.getItem('image') === null) {
changeBackground();
localStorage.setItem('color', document.body.style.backgroundColor);
localStorage.setItem('image', document.body.style.backgroundImage);
} else {
document.body.style.backgroundColor = localStorage.getItem('color');
document.body.style.backgroundImage = localStorage.getItem('image');
}
}
```
当页面加载时,先检查本地缓存中是否有保存的颜色和图片,如果没有则随机选择一组颜色和图片,并将其保存在本地缓存中。如果有保存的颜色和图片,则直接从本地缓存中读取并设置为背景。当用户刷新页面时,也会从本地缓存中读取保存的颜色和图片并设置为背景。
这样就可以实现HTML背景自动换、换皮肤颜色和更换页面背景图片,并将选择保存在本地缓存中,即使用户刷新页面或关闭浏览器,下次打开页面时仍然会保持之前选择的颜色和图片。
阅读全文