为了更清楚地解释我的情况,我有几个相同的HTML文件,唯一的区别是语言。每个文件都有自己独特的html lang标记。现在,使用jQuery或vanilla JS,如何根据用户选择的语言更改正在显示的超文本标记语言?
发布于 2018-11-19 23:39:20
有多种方法可以实现这一点。你可以有一个通用的html文件,它只会检测语言。这可以在一些JS函数中完成,这完全取决于您的应用程序将如何提供语言信息。现在,您可以在那个通用的hTML文件中创建一个iFrame,并在其中嵌入特定于语言的HTML语言。否则,如果html文件的名称不同,您可以将页面重新加载/重定向到特定于语言的HTML。也可以有其它实现,例如将所有语言专用html的内容编码在一个公共html中。所有内容都将被隐藏(可以使用css,如display : none;)。稍后,根据用户请求的语言,您可以使特定的html容器可见。
然而,这些方法不是标准的,并且您拥有文件的方式将很难维护。我建议用变量替换语言特定内容的一个文件。根据请求的语言,加载特定于语言的nls文件(属性名称和值对),并用实际值替换变量。
发布于 2018-11-19 23:40:47
如果您出于某种原因不想使用<a>标签,可以尝试这样做:
//add event listener to your language buttons with their IDs:
$('#lang1, #lang2, #lang3').on('click', function(event){
//identify which language is being clicked
var langClicked= "#" + $(this).attr('id');
//take action depending on clicked button
switch(langClicked){
case '#lang1':
//do something when its #lang1
break;
case '#lang2':
//do something when its #lang2
break;
case '#lang3':
//do something when its #lang2
break;
}
});https://stackoverflow.com/questions/53377569
复制相似问题