如何使用JQuery更改URL的文件夹?

时间:2010-10-14 14:00:37

标签: jquery url path

让我们谈谈,

在此网站

mysite.com/en/index.html

mysite.com/en/model1/index.html

并点击<a href="swap current url to /FR/...">FR</a>(或国家/地区标志img) 我该怎么做才能加载这个其他页面?

mysite.com/fr/index.html

mysite.com/fr/model1/index.html

我知道urlParser JQUery插件用于获取路径,它只是我是一个n00b而我根本无法编码(只需制作美颜html + css)。 :)

谢谢好朋友。

6 个答案:

答案 0 :(得分:1)

假设每种语言的目录结构相同......

简单的事情:

<script>
    //set a global var
    var current = '/en/';
    function changeLanguage(to){
        var from = document.location.href;
        var url = from.replace('/' + current + '/', to);
        document.location = url;
    }
</script>
<img src="frenchflag.jpg" onclick="changeLanguage('/fr/')" />
<img src="swissflag.jpg" onclick="changeLanguage('/sw/')" />
<img src="britishflag.jpg" onclick="changeLanguage('/en/')" />

然后在每个页面上粘贴并更改当前变量并删除该语言的图像。如果碰巧有很多页面,只需要做一点工作就可以自动化这部分。

答案 1 :(得分:0)

您可以在

等链接中使用绝对网址
href="/fr/index.html"

href="/fr/model1/index.html"

或获取当前网址的语言组成部分并将其替换为新网址

var current_language = jQuery.url.segment(1);

var str = document.location;

var new_url  = str.replace('/' + current_language + '/', "/fr/");

像这样的东西

答案 2 :(得分:0)

我不确定您的当前网址与目标网址之间是否存在关联,从您的文字判断,抱歉,但通常情况下,您将如何将点击侦听器应用于所有元素(使用class /指定) id)并让它打开一个特定的网址:

$(document).ready(function(){
  $('a').click(function() {
    window.location = "http://mysite.com/fr/index.html";
  });
});

答案 3 :(得分:0)

您是否需要将路径中的/en/替换为/fr/
如果是这样的话:

$(document).ready(function(){
  $('a').click(function() {
    document.location.href =document.location.href.replace('/en/' '/fr/');
  });
});

答案 4 :(得分:0)

如果有多种语言,请为每个链接标记添加language="en"language="fr"或任意内容,并输入以下代码:

$(document).ready(function(){
  $('a').click(function() {
    var language = $(this).attr('language')
    document.location.href =document.location.href.replace('/en/' '/'+language+'/');
  });
});

这样您就可以定义链接在HTML中指向的语言

答案 5 :(得分:0)

我改进了Dror 的响应(就像他的代码在' / fr / ''之间缺少逗号一样的 / EN / '
现在它以“两种”方式工作,就像你似乎要求的那样:

$(document).ready(function(){
    $('a').click(function() {
        if (window.location.href.indexOf("fr") > -1) {
            document.location.href =document.location.href.replace('/fr/','/en/');
        } else {
            document.location.href =document.location.href.replace('/en/','/fr/');
        }
    });
});