如何在同一页面上更改语言文件夹?(通过使用jQuery或JavaScript)



我有一个网站,有2种语言是EnTh。每种语言在不同的文件夹下有相同的文件名,即/en//th/。我已经创建了<a>标签,在我包含的头文件(asp)上切换这两种语言。

问题是如何获得当前路径,无论你在哪里,并更改文件夹名称为enth ?(如果您在英语联系人页面,点击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就行。

最新更新