我有一个网站,有2种语言是En
和Th
。每种语言在不同的文件夹下有相同的文件名,即/en/
和/th/
。我已经创建了<a>
标签,在我包含的头文件(asp)上切换这两种语言。
问题是如何获得当前路径,无论你在哪里,并更改文件夹名称为en
或th
?(如果您在英语联系人页面,点击th
将带您到泰国联系人页面。)
我尝试创建一个函数:
<script>
function changeLanguage(to) {
var from = jQuery.url.segment(-2);
var url = from.replace('/' + from + '/', to);
document.location = url;
}
</script>
在<a>
标签中使用
<a id="flags" href="#" onclick="changeLanguage(en)"> English </a>|<a href="#" onclick="changeLanguage(th)" >Thai</a>
但是它不起作用。我花了很多天才找到一个类似的问题。我找到了一些,但仍然不能适用于我的代码。所以请帮帮我。我是这方面的新手,真的需要你的帮助。非常感谢。
你需要添加一个字符串,在你说changellanguage(变量名为en)的时刻,使用:
onclick="changeLanguage('en')"
或使用jquery为您绑定点击事件:
<a id="flags" href="#en" class="flag"> English </a>|<a href="#th" class="flag">Thai</a>
和使用jquery代码:
$(function() {
$(".flag").click(function(e) {
e.preventDefault();
var to = $(this).attr("href").substring(1); //removes the hash value # (#en will become 'en')
var from = jQuery.url.segment(-2);
var url = from.replace('/' + from + '/', '/' + to + '/');
document.location = url;
});
});
我已经将语言文本移动到href中,这样我们就可以在click事件中捕捉到它。
一个例子,它会弹出一个警告,告诉你点击了什么语言:http://jsbin.com/epavoh/2/
@voigtan,我花了很多时间试图理解你的代码。但无论我已经尝试,这段代码仍然添加#en或#th后我的URL。
<script>
$(".flag").click(function(e) {
e.preventDefault();
var to = this.href.substring(1);
var from = jQuery.url.segment(-2);
var url = from.replace('/' + from + '/', '/' + to + '/');
document.location = url;
});
</script>
<a id="flags" href="#en" class="flag"> English </a>|<a href="#th" class="flag">Thai</a>
是的,我知道jQuery.url.segment(-2)的用途。它会从右边的2个路径中找到URL段?我的文件夹是root/en/default.asp,所以(-2)将返回"en"或"th"的值。
实际上,不需要Javascript或jQuery。任何东西都可以只要能放得下。asp就行。