代码之家  ›  专栏  ›  技术社区  ›  Tom Bom

如何在整个网站中保持查询的持久性

  •  0
  • Tom Bom  · 技术社区  · 6 年前

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

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

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   junsang    6 年前

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