正如你在下面看到的,我设法写了一个js公式,允许我检索在我的网站上选择的语言访问者。
最后,我想更进一步:一旦检索到选定的语言,我希望公式为每种语言返回一个数字。例如,如果选择的语言是"en“,我希望脚本返回"1”。
你能帮我改进一下这个脚本吗?
tC.internalvars.metalanguage = "";
var metas = document.getElementsByTagName('meta');
for (var i=0; i<metas.length; i++) {
if (typeof metas[i].getAttribute("http-equiv") != "undefined" && metas[i].getAttribute("http-equiv") == "Content-Language" && typeof metas[i].getAttribute("content") != "undefined" && metas[i].getAttribute("content") !== "") {
tC.internalvars.metalanguage = metas[i].getAttribute("content");
}
} 发布于 2016-07-27 18:28:55
当你找到你的语言时,你只需要像这样停止循环:
for (var i=0; i<metas.length; i++) {
if (typeof metas[i].getAttribute("http-equiv") != "undefined" && metas[i].getAttribute("http-equiv") == "Content-Language" && typeof metas[i].getAttribute("content") != "undefined" && metas[i].getAttribute("content") !== "") {
tC.internalvars.metalanguage = metas[i].getAttribute("content");
// now you find the language and break here
break;
}
}通过这种方式,您可以跳过其他元素,因为您在这里不需要更多的元素。
关于映射,一种快速的方法是在您的主范围内定义一个普通对象,这类似于散列映射:
var languages = {
"en": 1,
"it": 2,
// ... so on
}因此,您可以使用以下命令获取语言代码:
var langCode = languages[tC.internalvars.metalanguage];或者,您可以从函数内部返回值:
return languages[tC.internalvars.metalanguage];https://stackoverflow.com/questions/38564765
复制相似问题