javascript - 如何使会话存储更改值
问题描述
我正在制作一个网站,并且是 html 和 JavaScript 的新手。我基本上有一个视频,当你第一次打开网站时,一旦视频完成它就会转换到主页时,它会占据整个屏幕。我试图拥有它,以便您每次会话只能查看一次。我的问题是,当您切换到另一个页面并返回主页时,您将不得不再次观看视频。我正在使用会话存储顺便说一句。任何帮助表示赞赏
<body class="Video" id="Video">
<div class="video">
<video id="myVideo" width="500" muted autoplay>
<source src="video.mp4" type="video/mp4">
</video>
</div>
<script>
var x = document.getElementById('myVideo');
var i = document.getElementById('Home');
var header = document.getElementById('header');
var office = document.getElementById('office');
var work = document.getElementById('work');
var info = document.getElementById('info');
var total = 1;
var count;
console.log(total, count);
if (total !== count) {
sessionStorage.setItem('isNewSession', 'true');
console.log(sessionStorage.getItem("isNewSession"))
count = 1;
console.log(total, count);
}
if (sessionStorage.getItem("isNewSession") == 'true') {
sessionStorage.setItem('isNewSession', 'false');
console.log(sessionStorage.getItem("isNewSession"))
i.style.overflow = "hidden";
header.style.visibility = "visiblie";
office.style.visibility = "hidden";
work.style.visibility = "hidden";
info.style.visibility = "hidden";
footer.style.visibility = "hidden";
document.getElementById('myVideo').addEventListener('ended', function (e) {
x.style.visibility = "hidden";
i.style.visibility = "visible";
if (i.style.visibility === "visible") {
i.style.overflow = "visible";
header.style.visibility = "visible";
office.style.visibility = "visible";
work.style.visibility = "visible";
info.style.visibility = "visible";
footer.style.visibility = "visible";
} else {
i.style.visibility = "hidden";
header.style.visibility = "visible";
office.style.visibility = "hidden";
work.style.visibility = "hidden";
info.style.visibility = "hidden";
footer.style.visibility = "hidden";
}
})
}
else {
x.style.visibility = "hidden";
}
</script>
</body>
解决方案
这些行:
var total = 1;
var count;
console.log(total, count);
if (total !== count) {
sessionStorage.setItem('isNewSession', 'true');
console.log(sessionStorage.getItem("isNewSession"))
count = 1;
console.log(total, count);
}
从一开始就一直运行total !== count
。由于它总是运行,它变为isNewSession
,'true'
这使得下一个代码块也运行。我不确定它打算做什么。如果total
并且count
不做任何其他事情,您可能应该删除整个部分。
删除后,您可以更改它:
if (sessionStorage.getItem("isNewSession") == 'true') {
至
if (sessionStorage.getItem("isNewSession") !== 'false') {
在这种情况下,如果sessionStorage
未设置,或者值不是'false'
.
推荐阅读
- facebook - Facebook Ads API - 从 API 创建广告时资产自定义广告面临错误
- powershell - 创建名称和日期+7天的文件夹结构
- python - 如何更改流光应用页面的名称?
- fix-protocol - 如何使用 QuickFIX 将 58/文本添加到登录消息中
- pandas - 下一行中的值更改时的整数计数器
- javascript - 链接两个独立类型以检测正确的类型
- nuxt.js - 使用strapi后端,使用目标:静态生成nuxt时,图像不会出现
- sql - 条件 FROM 语句 Postgresql
- android - 将 React Native 版本升级到 0.64 时出错
- excel - 将工作簿值组合到单个列中