Эффективное добавление / удаление каталога в текущем URL с JavaScript - PullRequest
1 голос
/ 05 января 2011

Я новичок в JavaScript и смог собрать следующий код. Он выполняет свою работу, но я хотел бы продолжить обучение, и мне интересно, есть ли более эффективный / элегантный способ выполнить задачу.

У меня английский сайт переведен на итальянский. Переведенные страницы имеют идентичные имена файлов и находятся в каталоге «IT». Поэтому я поместил ссылку на каждую страницу, которая запускает скрипт для добавления / IT / при сохранении остальной части текущего URL. На итальянских страницах дополнительный скрипт удаляет каталог для возврата на английскую страницу.

Вот код:

(примечание: моя часть сайта находится по адресу domain.com/site/, если вам интересно, почему код не добавляет каталог / IT / в корневой каталог.)

function italian(){
  var str;
  var str = document.URL;
  arr = str.split("/");
  var URLparts;
  var URLparts = arr.length;
  var count;
  var count = 0;

  var newURL;
  newURL = "";


  while (count < URLparts){
    newURL = newURL + arr[count];
    count = count + 1;

      if (count < URLparts){
        newURL = newURL + "/";
      }

      switch(count){
        case 4:
        newURL = newURL + "IT/";
        break;
      }

    }

  window.location = newURL;

}

Над чем я могу улучшить его? Я, конечно, готов поставить работу на ноги. Если вы можете указать мне направление исследований, я с удовольствием возьму это оттуда.

Спасибо!

Ответы [ 2 ]

1 голос
/ 05 января 2011

Несколько более краткая версия может использовать регулярное выражение для вставки / удаления части / IT / из URL, т.е.:

function italian() {
    # make domain.com/site/ -> domain.com/site/IT/
    window.location = document.URL.replace(/site\//, "site/IT/")
}
0 голосов
/ 05 января 2011

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

Я понимаю, что мой ответ на самом деле не является ответом на улучшение вашего сценария, но я думаю, что это будет хорошим улучшением вашегополный сайт.

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