0

我猜我需要为此制作一个 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);

谢谢!

4

2 回答 2

2

可能的解决方案是,

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

我讨厌人们只是粘贴链接,但这是我现在所能做的:

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

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

于 2013-10-29T16:31:31.170 回答