ruby-on-rails - 如何在整个网站上保持查询的持久性
问题描述
我有一个 Rails 应用程序,当用户打开我的网站时,如果他们来自电子邮件中的链接,我?email=true
会输入网址。如果 url 中有查询,我会显示不同的导航栏。
但是,一旦用户单击网站中的其他链接,查询就会消失,并显示旧的导航栏。
如果查询来自电子邮件,我如何始终将查询保留在那里?
解决方案
我建议您使用 javascript 并将标志保存在localStorage
or中sessionStorage
。
const navbar = document.getElementById('navbar');
const url = new URL(location.href);
const fromMail = !!url.searchParams.get('email') || !!localStorage.getItem('fromMail');
if (fromMail) {
localStorage.setItem('fromMail', '1');
navbar.classList.add('email-navbar');
} else {
navbar.classList.add('default-navbar');
}
推荐阅读
- angular - 为什么无法返回 forkJoin?
- python - 计算熊猫的尾随方差
- typescript - moment.js 持续时间的 Typescript 类型定义
- mikrotik - 使用第 7 层协议阻止网站不起作用
- python - 要列出的 Python 列表
- npm - npm 尝试加载错误版本的 node-sass
- node.js - NodeJs Microsoft BotFramework“BotFrameworkAdapter 不是构造函数”错误
- ios - Swift iOS UITabBar 自定义
- vmware - Linux 上的 VMWare - 无法打开 /dev/vmmon
- docker - 在父镜像之上运行 Docker 父镜像和基础镜像