Javascript 在用户界面中隐藏/显示语言按钮
我有一个应用程序,上面有一个按钮用于页面翻译(英语/西班牙语)&我根据加载的页面隐藏它们。默认情况下,加载英语,因此西班牙语按钮位于顶部,用户可以单击它们,因此加载西班牙语版本(我们现在隐藏西班牙语按钮并显示英语) 问题是当用户第一次加载页面,然后选择西班牙语,然后离开,然后重新加载页面,西班牙语版本会消失,但按钮也是西班牙语。从技术上讲,应该是英语。这是因为第一次加载页面时,变量的值是未定义的,它被定义为英语,我们显示西班牙语按钮。我们是否可以调整它以正确显示按钮?我也没有在cookie中明确存储任何内容 代码Javascript 在用户界面中隐藏/显示语言按钮,javascript,jquery,button,show-hide,Javascript,Jquery,Button,Show Hide,我有一个应用程序,上面有一个按钮用于页面翻译(英语/西班牙语)&我根据加载的页面隐藏它们。默认情况下,加载英语,因此西班牙语按钮位于顶部,用户可以单击它们,因此加载西班牙语版本(我们现在隐藏西班牙语按钮并显示英语) 问题是当用户第一次加载页面,然后选择西班牙语,然后离开,然后重新加载页面,西班牙语版本会消失,但按钮也是西班牙语。从技术上讲,应该是英语。这是因为第一次加载页面时,变量的值是未定义的,它被定义为英语,我们显示西班牙语按钮。我们是否可以调整它以正确显示按钮?我也没有在cookie中明确
function getUrlParameter(sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : sParameterName[1];
}
}
}
function pageLoadConditions() {
var lang = getUrlParameter('lang');
alert ("lang: " +lang);
if(typeof lang=="undefined"){
lang='en';
alert ("lang 2: " +lang);
}
alert ("lang 3: " +lang);
if(lang){
if(lang==="es"){
$('#lang_pref').val(lang);
$("#lang_ess").hide();
$("#lang_enn").show();
}else{
$('#lang_pref').val(lang);
$("#lang_enn").hide();
$("#lang_ess").show();
}
}else{
$('#lang_pref').val("en");
$("#lang_enn").hide();
$("#lang_ess").show();
}
}
window.onload = pageLoadConditions;
函数getUrlParameter(sParam){
var sPageURL=decodeURIComponent(window.location.search.substring(1)),
sURLVariables=sPageURL.split(“&”),
sParameterName,
我
对于(i=0;i谢谢。谢谢Maulzal,我能让它工作了 我所要做的就是在jsp中添加if条件,如下所示
<c:if test="${pageContext.response.locale != "es"}">
Spanish button
</c:if>
<c:if test="${pageContext.response.locale != "en"}">
Eng button
</c:if>
西班牙语按钮
Eng按钮
我还注释掉了与此相关的所有javascript函数。
谢谢。你所做的肯定会奏效,但这不是实现国际化的“正确方式”。JSP中有本机支持定义包含id->特定于语言的字符串映射的资源束。一旦您在JSP中正确设置了字符串id,添加另一种语言并不意味着您需要遍历整个应用程序,找到所有字符串并向if-else梯形图添加另一个梯级,而是只需添加另一个id->language映射文件 但是,如果您只支持两种语言,那么您所做的一切都可以
您是否考虑过只更改按钮的文本值而不显示/隐藏?让它听哪个页面被加载,而不是点击本身。谢谢,从技术上讲,它是同一个页面。我正在使用Spring进行自动转换。我认为他们的关键是创建一个变量或布尔值,以确定您正在查看的是英语还是西班牙语,并让您的按钮文本收听该布尔值。再次感谢。问题将是如何确定页面加载是英语还是西班牙语。然后我需要依赖同样的逻辑(我在上面发布的那个),第一次加载页面时,它将是未定义的,因此它将是英语的&等等。有没有其他方法来确定这一点?任何指针都会很有帮助。实际上,我对所有其他语言都使用Spring语言环境,除了这个特殊的场景,我需要显示/隐藏备用语言按钮,以便用户可以单击。正如我在问题中提到的那样,我尝试了javascript,但它在几个实例中都不起作用,因此采用了这个解决方案。谢谢,我只是想确保你不会无缘无故地走上死胡同