首页 > 解决方案 > 如何在整个网站上保持查询的持久性

问题描述

我有一个 Rails 应用程序,当用户打开我的网站时,如果他们来自电子邮件中的链接,我?email=true会输入网址。如果 url 中有查询,我会显示不同的导航栏。

但是,一旦用户单击网站中的其他链接,查询就会消失,并显示旧的导航栏。

如果查询来自电子邮件,我如何始终将查询保留在那里?

标签: ruby-on-railsurl

解决方案


我建议您使用 javascript 并将标志保存在localStorageor中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');
}

推荐阅读