javascript - 仅在新会话上显示元素并刷新
问题描述
这里的任务是仅在您打开网页以及刷新网页时“第一次”显示元素。导航中的链接会将您重定向到另一个 *.html 页面,并且每个 *.html 页面中包含的“全局”div 元素仅应在以下情况下显示:
- 第一次打开网页(关闭网页/标签,再打开也算第一次打开网站)
- 刷新了网站上的页面。
文件结构和大致代码如下所示: https ://stackblitz.com/edit/js-ocytv4?file=index.html
我很习惯做 SPA,所以我什至不确定这是否可以用纯 JS 来做,因为网页总是会被卸载并再次加载。
我尝试添加会话存储项以进行检查,但在这种情况下,无法.introduction
在刷新时删除。我尝试检查 document.referrer 和实际的 window.location.href 也无济于事,存在不一致之处。例如,我可以这样做:
const ref = document.referrer
const href = window.location.href
const showIntro = () => {
introductionNode.classList.remove('hidden')
}
if (!ref || ref === href) {
removeIntro()
} else {
removeIntro()
}
但是,显然当我从Page2 到达Page1 时,我的referrer 将是Page1 并且不会设置为Page2,因此在刷新页面时,不会隐藏介绍块。并且只有当我第二次点击导航中的链接时才能工作,在同一页面上。
解决方案
推荐阅读
- javascript - 在不同的时区开始一天
- javascript - 输入 5 个名称并随机将每个名称与列表中的唯一项目配对
- angular - Angular 9 货币管道不显示欧元符号
- hibernate - JPA加入条件导致N+1问题
- python - 合并具有重复键的数据帧
- go - 我们如何使用 gogo JSONPB marshaler 编组动态原型(来自 jhump/protoreflect)
- rest - Nuxeo 服务器将多个文件上传到一个文档
- ruby-on-rails - 使用 Vue 时如何在 Rails 6 中设置 runtimerCompiler: true
- php - Gmail RESTful API 中的 FAILED_PRECONDITION 响应
- c# - ASP.NET 从另一个程序集加载视图