Получить текущий URL и изменить подкаталог, а затем перейти на URL с Javascript - PullRequest
1 голос
/ 29 марта 2012

Я создаю двуязычный веб-сайт для клиента. Будут созданы две версии сайта на разных языках и сохранены в двух папках: / О / / CHI /

Что я хочу сделать, это создать ссылку для переключения между двумя языками. На концептуальном уровне я понимаю, что Javascript может обнаружить текущий URL-адрес и разделить его на различные компоненты, изменить его части (в этом случае изменить между / en / и / chi /), а затем перейти к этому новому URL-адресу, ссылка нажата.

Но у меня нет нулевых знаний в javascript, поэтому я понятия не имею, как выполнить ... Я наткнулся на эту страницу: http://css -tricks.com / сниппеты / JavaScript / Get-url-и-url-части-в-JavaScript / но это не объясняет, как изменить и перейти к новой ссылке.

Ваша помощь будет принята с благодарностью !!

Ответы [ 3 ]

2 голосов
/ 29 марта 2012

Чтобы не нарушать удобство использования, например Shift + щелчок , чтобы открыть в новом окне, необходимо создать простую старую ссылку (<a>), которая указывает на URL другого языка. Нет ничего плохого в создании ссылки через JavaScript, но вы также можете сделать это на сервере, используя PHP или любой другой язык шаблонов, который вы используете.

Вот скрипт, который делает это с помощью JavaScript, если вы решите, что именно вы хотите это сделать.

<!DOCTYPE html>
<body>
  Content before the link.
  <script>
    (function () {
      // this assumes you're on the en version and want to switch to chi
      var holder = document.createElement("div");
      var url = window.location.href.replace("/en/", "/chi/");
      var link = document.createElement("a");

      link.innerText = "Chewa"; // or whatever the link should be
      link.href = url;
      holder.appendChild(link);
      document.write(holder.innerHTML);
    })();
  </script>
  Content after the link.
</body>
0 голосов
/ 29 марта 2012

Похоже, вам нужно изменить window.location.pathname.Например:

// assuming the url `http://www.example.org/en/foo/bar/page.html`

var paths = window.location.pathname.split("/");
// change `en`
paths[1] = "chi";
// go to the new url
window.location.pathname = paths.join("/");

См .:

https://developer.mozilla.org/en/DOM/window.location

0 голосов
/ 29 марта 2012

Если вы просто хотите взять полный URL-адрес и заменить /en/ на /chi/ или наоборот, используйте код ниже.

HTML

<span onclick="SwitchLang()">View [Some other Language]</span>

JavaScript

function SwitchLang() {
    //Does URL contain "/en/"?
    if(window.location.href.indexOf("/en/") != -1) {
        //URL contain "/en/", replace with "/chi/"
        window.location.href = window.location.href.replace("/en/", "/chi/");
    }
     //Does URL contain "/chi/"?
    else if(window.location.href.indexOf("/chi/") != -1) {
        //URL contain "/chi/", replace with "/en/"
        window.location.href = window.location.href.replace("/chi/", "/en/");
    }
}

Или, более краткий (без комментариев)

function SwitchLang() {
    if(window.location.href.indexOf("/en/") != -1)
        window.location.href = window.location.href.replace("/en/", "/chi/");
    else if(window.location.href.indexOf("/chi/") != -1)
        window.location.href = window.location.href.replace("/chi/", "/en/");
}

Примечание: В JSКогда вы изменяете window.location.href, новый URL-адрес загружается автоматически.

Вот рабочая скрипка , с которой вы можете играть.

...