如下所示,我设法编写了一个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");
}
}
答案 0 :(得分:0)
当你找到你的语言时,你只需要像这样停止循环:
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];