有效地添加/删除当前URL中的目录w/JavaScript
我是一个JavaScript初学者,并设法拼凑到以下代码。它完成了工作,但我想继续学习,我想知道是否有更高效/更优雅的方式来完成任务。有效地添加/删除当前URL中的目录w/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;
}
我可以改进它?我当然愿意参加腿部工作。如果你能指点我的研究方向,我很乐意从那里开始。
谢谢!
稍微更简洁的版本可能会使用一个正则表达式插入/从URL删除/ IT /部分,即:
function italian() {
# make domain.com/site/ -> domain.com/site/IT/
window.location = document.URL.replace(/site\//, "site/IT/")
}
取决于您使用哪种服务器端语言,但大多数语言都具有良好的i18n(国际化)支持。这样您就可以在一个布局中创建多语言网站。这样做的好处是,如果更改了某些内容,则不必两次更改代码。
我意识到我的回答并不是真正改善脚本的答案,但我认为这对您的完整站点会有很大的改进。
我很欣赏你的反应。我认为你所描述的是我的理想。在这种情况下,该网站只有大约20页,我需要我能够迅速找到并实施的最简单的事情。现在,我有时间回顾并完善它,只是为了学习更多。 – EricDobson 2011-01-07 07:19:55
稍微简洁一点?这正是我所期待的。很有趣,我刚买了O'Reilly的正则表达式书。他们只是没有深入,还没有想到要使用它!非常感谢您的时间。 – EricDobson 2011-01-07 07:26:38