Javascript Jquery浏览器后退按钮-保留设置
这个问题是基于我在这里的前一个问题 我想根据语言选择更改href链接的位置 多亏了这里的帮助,它现在做了它应该做的事情Javascript Jquery浏览器后退按钮-保留设置,javascript,jquery,html,Javascript,Jquery,Html,这个问题是基于我在这里的前一个问题 我想根据语言选择更改href链接的位置 多亏了这里的帮助,它现在做了它应该做的事情 (function ($) { $(function(){ var select = $('#language-selection'); var options = select.children('#other-languages'); select.attr('style', '-moz-user-select:none;-webkit-user-select:none
(function ($) {
$(function(){
var select = $('#language-selection');
var options = select.children('#other-languages');
select.attr('style', '-moz-user-select:none;-webkit-user-select:none;');
options.css({
display:'none'
});
select.click(function() {
if(options.css('display') == 'none') {
/* options.css({display:'block'}); */
options.slideToggle('fast');
} else {
/* options.css({display:'none'}); */
options.slideToggle('fast');
}
});
});
})(jQuery);
var current = "English"
$("[data-lang]").on("click", function() {
var lang = $(this).data("lang");
$(".clickButton").prop("href", function(i, href) {
return href.replace(current, lang);
});
$('#language-selection > #current-language > img').attr('src' , $(this).find('img').attr("src"));
$('#language-selection > #current-language > img').attr('alt' , lang);
$('#language-selection > #current-language > img').attr('title' , lang);
$("#language-selection > #current-language").contents().each(function() {
if(this.nodeType == 3)
this.nodeValue = this.nodeValue.replace(current, lang);
});
current = lang;
});
我的问题是:当跟随一个随着语言选择而改变的链接并单击浏览器后退按钮时,它当然会返回到默认的语言设置
是否有一种简单的方法“保存”语言设置,使其不会切换回默认设置
谢谢。我的解决方案是在用户更改值时将其存储在localStorage中:
var lang = $(this).data("lang");
localStorage['lang'] = lang;
当你加载一个页面时,你可以
var lang = localStorage['lang'] || defaultLanguage;
因此,您不必在URL中传递所选语言,它将保存在用户的计算机上
顺便说一句,为了与各种i18N工具兼容,我更喜欢使用“en”而不是“English”。我不确定我们是否在同一页上讨论我的设置,或者我需要做什么才能让您的解决方案正常工作。看这把小提琴: