如何在整个网站上保持查询持久

时间:2018-09-05 04:19:29

标签: ruby-on-rails url

我有一个Rails应用程序,当用户打开我的网站时,如果它们来自电子邮件中的链接,我会将?email=true放在URL中。如果网址中有查询,则显示另一个导航栏。

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

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

1 个答案:

答案 0 :(得分:1)

我建议您使用javascript并将标志保存在localStoragesessionStorage中。

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');
}