切换按钮的href link,由JS根据网站语言而定
Switch href link of button, depends on website language by JS
我在网站上有一个按钮,我翻译了文本(使用 po 和 mo 文件),但 link 仍然只有一个。我正在尝试根据打开的语言网站进行切换,但我的代码不起作用。有没有人可以帮忙
function changeLink(document.getAttribute("lang")){
var theLink = document.querySelector('.donate-now');
if(document.getAttribute("lang") == 'en-EN'){
theLink.href="https://usrussiacc.org/membership/";
} else if(document.getAttribute("lang") == 'ru-RU'){
theLink.href="https://usrussiacc.org/ru/glavnaja/chlenstvo/";
}
}
首先,我假设您正在设置 <html lang="en-EN">
。
<html>
其实就是文档的根元素。需要这样检索它;最简单快捷的方法是 document.documentElement
(MDS documentation).
使用这个,我们调用 document.documentElement.getAttribute("lang")
从 <html>
标签中检索 lang="aa-AA"
属性。
函数我也清理了,单独调用了
function changeLink(lang) {
var theLink = document.querySelector('.donate-now');
if (lang == 'en-EN') {
console.log('en-EN')
theLink.href = "https://usrussiacc.org/membership/";
} else if (lang == 'ru-RU') {
console.log('ru-RU')
theLink.href = "https://usrussiacc.org/ru/glavnaja/chlenstvo/";
} else {
console.log('neither')
}
}
changeLink(document.documentElement.getAttribute("lang"))
<html lang="en-EN">
<head></head>
<body>
<a href="" class="donate-now">I'm a link</a>
</body>
</html>
虽然上面的代码仍然不是很可扩展,或者友好。下面我重写了它,以使其更具可扩展性和可重用性。也消除了对所有争论的需要。只需在 listURI
中添加更多 lang/path 对,它就会自动处理它们。您还可以输入通用 URI,以防给定语言不存在(永远不要信任用户)。
function changeLink() {
let listURI = {
'en-EN': 'https://usrussiacc.org/membership/',
'ru-RU': 'https://usrussiacc.org/ru/glavnaja/chlenstvo/'
};// Scale support, by adding new languages and URIs to this list
let linkURI = listURI[document.documentElement.getAttribute("lang")];
if (linkURI != undefined) {
document.querySelector('.donate-now').href = linkURI;
console.log(linkURI)
} else {
console.log("LANGUAGE DOESN'T EXIST")
}
}
changeLink()
<html lang="en-EN">
<head></head>
<body>
<a href="" class="donate-now">I'm a link</a>
</body>
</html>
我在网站上有一个按钮,我翻译了文本(使用 po 和 mo 文件),但 link 仍然只有一个。我正在尝试根据打开的语言网站进行切换,但我的代码不起作用。有没有人可以帮忙
function changeLink(document.getAttribute("lang")){
var theLink = document.querySelector('.donate-now');
if(document.getAttribute("lang") == 'en-EN'){
theLink.href="https://usrussiacc.org/membership/";
} else if(document.getAttribute("lang") == 'ru-RU'){
theLink.href="https://usrussiacc.org/ru/glavnaja/chlenstvo/";
}
}
首先,我假设您正在设置 <html lang="en-EN">
。
<html>
其实就是文档的根元素。需要这样检索它;最简单快捷的方法是 document.documentElement
(MDS documentation).
使用这个,我们调用 document.documentElement.getAttribute("lang")
从 <html>
标签中检索 lang="aa-AA"
属性。
函数我也清理了,单独调用了
function changeLink(lang) {
var theLink = document.querySelector('.donate-now');
if (lang == 'en-EN') {
console.log('en-EN')
theLink.href = "https://usrussiacc.org/membership/";
} else if (lang == 'ru-RU') {
console.log('ru-RU')
theLink.href = "https://usrussiacc.org/ru/glavnaja/chlenstvo/";
} else {
console.log('neither')
}
}
changeLink(document.documentElement.getAttribute("lang"))
<html lang="en-EN">
<head></head>
<body>
<a href="" class="donate-now">I'm a link</a>
</body>
</html>
虽然上面的代码仍然不是很可扩展,或者友好。下面我重写了它,以使其更具可扩展性和可重用性。也消除了对所有争论的需要。只需在 listURI
中添加更多 lang/path 对,它就会自动处理它们。您还可以输入通用 URI,以防给定语言不存在(永远不要信任用户)。
function changeLink() {
let listURI = {
'en-EN': 'https://usrussiacc.org/membership/',
'ru-RU': 'https://usrussiacc.org/ru/glavnaja/chlenstvo/'
};// Scale support, by adding new languages and URIs to this list
let linkURI = listURI[document.documentElement.getAttribute("lang")];
if (linkURI != undefined) {
document.querySelector('.donate-now').href = linkURI;
console.log(linkURI)
} else {
console.log("LANGUAGE DOESN'T EXIST")
}
}
changeLink()
<html lang="en-EN">
<head></head>
<body>
<a href="" class="donate-now">I'm a link</a>
</body>
</html>