Изменение Javascript URL в главном меню в зависимости от языка

0

Я полный noob на javascript, поэтому мне нужно знать, если и как это можно сделать:

У меня есть сайт с 2-мя языками, английским и итальянским. Итальянские страницы находятся на

www.mysite.com/ita/index.hmtl

пока английские страницы включены

www.mysite.com/eng/index.hmtl

Пользователь меняет langages из значков флагов. Проблема в том, что я не могу изменить ссылки меню отдельно для сайтов ITA и ENG, поэтому я не могу напрямую редактировать html. Итак, прямо сейчас, когда пользователь идет по английскому сайту, ссылки меню по-прежнему указывают на итальянские страницы.

Так есть код javascript, чтобы изменить ВСЕ URL-адреса на странице, поэтому, когда пользователь переходит на английскую версию сайта на странице

www.mysite.com/eng/index.hmtl

все URL-адреса будут изменены с

/ITA/

в

/eng/?

  • 0
    Сейчас я использую этот код: <script type = "text / javascript"> if (document.URL.indexOf ("/ aprol /")> = 0) {function replace_url (elem, attr) {var elems = document. getElementsByTagName (эль); для (var i = 0; i <elems.length; i ++) elems [i] [attr] = elems [i] [attr] .replace ('mysite.com/', 'mysite.com/eng/'); }} window.onload = function () {replace_url ('a', 'href'); // etc} </ script> <a href=" mysite.com/index.html"> Link </ a > Но первоначальное «если» не работает в Chrome или IE, только в Firefox. Не могу понять почему честно.
Теги:
url
menu
multilingual

3 ответа

0

В настоящее время я использую этот код:

<script type="text/javascript">
    if(document.URL.indexOf("/aprol/") >= 0){
           function replace_url(elem, attr) { 
           var elems = document.getElementsByTagName(elem); 
           for (var i = 0; i < elems.length; i++) 
               elems[i][attr] = elems[i][attr].replace('mysite.com/', 'mysite.com/eng/'); 
           } 
    } 
window.onload = function(){ 
    replace_url('a', 'href'); 
}
</script>

и это как samlple html link

<a href="mysite.com/index.html">Link</a>

Но он работает только на firefox, а не на хром или IE9.

Не могу понять, почему честно.

0

Вы можете использовать регулярное выражение для изменения ссылок

var url ='www.mysite.com/eng/index.hmtl', lang = '/ita';

url = url.replace(/\/\w*/,lang);

console.log(url); => www.mysite.com/ita/index.hmtl
0

Сохраните язык в cookie (плагин jquery cookie) и обновите все ссылки на загрузку страницы с использованием языка по умолчанию или файла cookie.

JS

$("a.changeLang").click(function(e){
    e.preventDefault();
    $.cookie("lang", $(this).attr("href"));
});


var lang = $.cookie("lang");
$("a").each(function(ref){
    $(ref).attr("href", $(ref).attr("href").replace("ita", lang).replace("eng", lang);
});

и HTML

<a class="changeLang" href="ita">ITA</a>
<a class="changeLang" href="eng">ENG</a>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню