使用/ JavaScript高效地添加/删除当前URL中的目录

时间:2011-01-05 17:49:12

标签: javascript url

我是一名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 个答案:

答案 0 :(得分:1)

稍微简洁的版本可能会使用正则表达式从URL中插入/删除/ IT / part,即:

function italian() {
    # make domain.com/site/ -> domain.com/site/IT/
    window.location = document.URL.replace(/site\//, "site/IT/")
}

答案 1 :(得分:0)

取决于您使用哪种服务器端语言,但大多数语言都支持良好的i18n(国际化)。这样,您就可以在一个布局中创建多语言网站。这样做的好处是,如果发生变化,您不必再更改代码两次。

我意识到我的答案并不是改善你的剧本的答案,但我认为这对你的完整网站来说是一个很好的改进。