2012-10-25 2 views
0

이 질문은 이전 질문 ( stackoverflow)을 기반으로합니다. 언어 선택에 따라 href 링크를 변경하려고합니다.Jquery 브라우저 뒤로 버튼 - 설정 유지

도움 덕분에 지금은해야 할 일이 있습니다.

(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; 

}); 

내 질문은 : 뒤로 버튼은 물론 다시 기본 언어 설정으로 이동합니다 클릭 언어 선택하고 브라우저로 변경되었다 링크를 따라합니다.

기본 설정으로 다시 전환되지 않도록 언어 설정을 "저장"하는 쉬운 방법이 있습니까?

감사합니다. 그래서 당신이없는

var lang = $(this).data("lang"); 
localStorage['lang'] = lang; 

그리고 당신은 페이지를로드 할 때, 당신은

var lang = localStorage['lang'] || defaultLanguage; 

을 수행 할 수 있습니다 사용자가 값을 변경할 때

답변

0

내 솔루션은 로컬 스토리지에 저장하는 것입니다 선택한 언어를 URL로 전달하면 사용자의 컴퓨터에 저장되어 있습니다.

저는 다양한 i18N 도구와의 호환성을 위해 normalized language codes 즉 "영어"대신 "en"을 사용하는 것을 선호합니다.

+0

우리가 내 설정에 대해 동일한 페이지에 있는지 또는 솔루션을 작동시키기 위해해야 ​​할 일이 확실하지 않습니다. 이 바이올린보기 : [link] (http://jsfiddle.net/7yt3d/) – TonyC