如何记住单击的href并重定向到它javascript

如何记住单击的href并重定向到它javascript,javascript,jquery,html,cookies,Javascript,Jquery,Html,Cookies,我的主页有两个链接:一个是英文版,另一个是法文版。大概是这样的: <a class="ensite" href="/en">English</a> <a class="ensite" href="/fr">French</a> 我想使用JavaScript来记住访问者最后的选择,当他们再次访问时,他们不必再选择一次语言,因为我想让他们使用cookies自动恢复到首选语言 另外,访客是陌生人,不是注册用户。我想将cookie存储在访问者的浏览器

我的主页有两个链接:一个是英文版,另一个是法文版。大概是这样的:

<a class="ensite" href="/en">English</a>
<a class="ensite" href="/fr">French</a>

我想使用JavaScript来记住访问者最后的选择,当他们再次访问时,他们不必再选择一次语言,因为我想让他们使用cookies自动恢复到首选语言


另外,访客是陌生人,不是注册用户。我想将cookie存储在访问者的浏览器中,而不是数据库中。请帮我提供完整的解决方案。

一般来说,想法是:在链接上设置处理程序,然后单击“将首选版本保存到本地存储”。然后,每次用户加载站点的任何页面时,只需检查url是否包含用户之前选择的语言上下文(“en”/“fr”)。如果是-不执行任何操作,则用户打开了正确的版本;如果没有-将他重定向到以前保存的版本。以下是常规方法(未经过适当测试)。您必须对其进行调整(attachEvent等),或者使用jQuery库以更短、更跨浏览器的方式实现类似的想法

<a class="ensite" href="/en">English</a>
<a class="ensite" href="/fr">French</a>

另外请注意,根据您如何在站点上实现语言上下文,可能会出现一些问题。您可以自己开始编写我的代码,并对其进行调整,或者找其他人来正确完成这项工作。

刚刚测试过,它工作得非常完美

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<a class="ensite" href="" onclick ="localStorage.setItem('language','en')">English</a>
<a class="ensite" href="" onclick = "localStorage.setItem('language','fr')">French</a>

<script>

$(document).ready(function(){

var language =  (localStorage.getItem('language') == null)? 'en' : localStorage.getItem('language');

console.log(language);
})

</script>

$(文档).ready(函数(){
var language=(localStorage.getItem('language')==null)?'en':localStorage.getItem('language');
console.log(语言);
})

使用cookies/local storage您可以在请求的url中传递lang参数,或者您可以为其注册用户创建cookie,然后您也可以在注册时选择语言首选项链接的作用是什么?重定向到新页面或触发javascript命令以所选语言显示单词?在您的情况下,我认为您希望记住用户选择的语言设置,因此所有单词都将以该语言显示。饼干是我认为最简单和正确的解决方案。可能是好的复制品!但请注意交叉浏览,如果使用我试图从另一个浏览器访问主页时遇到的代码,您的链接实际上应该包含“http://site.com/en”。它不工作,在firefox中也不工作。有人告诉我使用此库cookie、存储等绑定到当前浏览器。如果您在新浏览器中打开页面-它不知道您以前在其他浏览器中的操作、存储的信息等。用户必须在新浏览器中重复这些步骤。该库只是为本机cookie实现提供了一个接口,本机cookie实现是存储的替代方案。此外,一些浏览器可以使用所谓的“私有”模式。如果由用户激活,则不会存储来自页面的密码、cookie和其他内容,这使得整个方法无法工作。请检查这些答案,假设另一种(服务器端)方法-标题:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<a class="ensite" href="" onclick ="localStorage.setItem('language','en')">English</a>
<a class="ensite" href="" onclick = "localStorage.setItem('language','fr')">French</a>

<script>

$(document).ready(function(){

var language =  (localStorage.getItem('language') == null)? 'en' : localStorage.getItem('language');

console.log(language);
})

</script>