Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 网站上的翻译按钮-保存用户的语言偏好_Javascript_Html_Css - Fatal编程技术网

Javascript 网站上的翻译按钮-保存用户的语言偏好

Javascript 网站上的翻译按钮-保存用户的语言偏好,javascript,html,css,Javascript,Html,Css,因此,凭借我有限的JavaScript技能,我创建了一个简单的翻译按钮。当您点击按钮时,它会将您所在网页上的文本更改为英文或中文 当有人转到不同的网页,甚至刷新网页时,我该如何使这些更改保持不变?我尝试过本地存储技术,但没有成功 以下是我的翻译按钮JS代码: //onclick行为 $'.lang'。单击“touchstart”,函数{ var lang=$this.attr'id';//获取语言id //翻译所有可翻译的元素 $'.tr'.eachfunctioni{ $this.texta

因此,凭借我有限的JavaScript技能,我创建了一个简单的翻译按钮。当您点击按钮时,它会将您所在网页上的文本更改为英文或中文

当有人转到不同的网页,甚至刷新网页时,我该如何使这些更改保持不变?我尝试过本地存储技术,但没有成功

以下是我的翻译按钮JS代码:

//onclick行为 $'.lang'。单击“touchstart”,函数{ var lang=$this.attr'id';//获取语言id //翻译所有可翻译的元素 $'.tr'.eachfunctioni{ $this.textaLangKeys[lang][$this.attr'key']; }; }; //准备语言文件 var aLangKeys=新数组; aLangKeys['en']=新数组; aLangKeys['ch']=新数组; aLangKeys['en']['home']='home'; 关于我们; aLangKeys['en']['serv']='Services'; aLangKeys['en']['sem']='搜索引擎营销'; aLangKeys['en']['webdev']=“网站开发”; aLangKeys['ch']['home']='首页'; aLangKeys['ch']['about']='关于我们'; aLangKeys['ch']['serv']='服务'; aLangKeys['ch']['sem']='谷歌与雅虎推广'; LocalStorage只允许存储字符串,因此在获取和设置字符串时需要使用JSON.stringify和JSON.parse

但首先,您不应该对非数字键使用新数组。当你这样做的时候,你真正要做的是制作一个类似数组的对象

改为:

var aLangKeys = {
     en :{},
     ch: {}
}; 
// .... other definitions
设置

localStorage.setItem("aLangKeys", JSON.stringify(aLangKeys));
得到

var someVarName = JSON.parse(localStorage.getItem("aLangKeys"));

您是否可以将您使用LocalStorage的尝试包括在内,因为这将为我和其他人提供一些工作,而不必为您编写完整的解决方案。谢谢,对不起!我添加了我为LocalStorage所做的工作