存储哈希信息以供下拉选择

Store hash information for drop-down selection

本文关键字:选择 哈希信息 存储      更新时间:2023-09-26

我猜我需要为此制作一个cookie,但如果有其他方法,请告诉我。我有一个下拉菜单,它使用链接元素在网站上选择一种语言,根据他们选择的链接元素,创建一个附加到 URL 末尾的哈希。我正在寻找一种存储此选择的方法,以便选择保留在所有页面上,而不是在每次刷新或离开页面时重置。

这是 HTML:

<div class="menu cid">
   <a href="#" title="en">United States</a>
   <a href="#" title="can">Canada</a>
</div>

还有剧本:

$(document).ready(function(){ 
  if(document.location.hash == ""){ 
    location.href = location.href + "#en";
  }
});
jQuery('.menu a').on('click', function(event) {
    event.preventDefault();
    var clickedAnchor = jQuery(this),
        countryID = clickedAnchor.attr('title');
    location.href = location.href.split('#')[0] + '#' + countryID;
    location.reload();
});
var countryID = window.location.hash;
countryID = countryID.substring(1);
console.log("country code: "+countryID);
var countryID = "en";
    if (document.location.hash != "") {
       countryID = document.location.hash.substring(1);
    } 
    var map = {"en":"4242", "can":"4243"};
    cii_EmbedProductLinks('Chairs','{{ prodID }}',map[countryID], CI_LinkID);

谢谢!

可能的解决方案是,

  • Cookie - 如果您需要客户端实现,请注意过期
  • HTML5 Web 存储(本地存储、会话存储) - 仅限客户端,如果您没有不使用 HTML5 的限制。我认为会话存储更适合您的情况,因为它将保留设置,直到用户的会话过期。
  • 服务器会话 - 如果您要根据所选值(即语言)提供内容,则更适合。这通常由支持 i18n 的系统使用,这些系统需要知道服务器端和客户端随时选择的语言。

我讨厌人们只是粘贴链接,但这是我目前能做的:

https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage#localStorage

对不起,我希望这有帮助!