Как я могу изменить папку моего URL с помощью JQuery? - PullRequest
0 голосов
/ 14 октября 2010

Давайте перейдем к делу,

когда на этом сайте

mysite.com / ru / 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 ]

1 голос
/ 14 октября 2010

Предполагая, что структура каталогов одинакова для каждого языка ...

что-то простое, как:

<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/')" />

затем на каждой странице вы просто вставляете и меняете текущую переменную и удаляете изображение для этого языка. Приложив немного больше работы, вы также можете автоматизировать эту часть, если у вас много страниц.

0 голосов
/ 11 января 2013

Я улучшил ответ от 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/');
        }
    });
});
0 голосов
/ 14 октября 2010

Если существует более одного языка, добавьте 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

0 голосов
/ 14 октября 2010

Вам нужно заменить /en/ в пути к /fr/?
, если это так, используйте это:

$(document).ready(function(){
  $('a').click(function() {
    document.location.href =document.location.href.replace('/en/' '/fr/');
  });
});
0 голосов
/ 14 октября 2010

Я не уверен, должна ли существовать связь между вашим текущим и целевым URL, судя по вашему тексту, извините, но в целом это будет то, как вы применяете прослушиватель кликов ко всем элементам (укажите с помощью class / id) и позвольте ему открыть определенный URL:

$(document).ready(function(){
  $('a').click(function() {
    window.location = "http://mysite.com/fr/index.html";
  });
});
0 голосов
/ 14 октября 2010

Вы можете использовать абсолютные URL-адреса в таких ссылках, как

href="/fr/index.html"

или

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

или получите компонент языка текущего URL и замените его новым

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

var str = document.location;

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

Нечто подобное

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...