2011-01-05 10 views
1

私はJavaScript初心者で、次のコードにまとめて管理しています。それは仕事を終わらせますが、私は勉強を続けたいと思いますし、もっと効率的でエレガントな方法で仕事を達成するかどうか疑問です。JavaScriptを使用して現在のURLにディレクトリを効率的に追加/削除する

私はイタリア語を翻訳しました。翻訳されたページは同じファイル名を持ち、 'IT'というディレクトリにあります。そこで私は、現在のURLの残りの部分を維持しながら、/ IT /を追加するためのスクリプトを起動するすべてのページにリンクを張ります。イタリア語のページでは、補完的なスクリプトがディレクトリを削除して英語のページに戻ります。ここで

はコードです:

(注意:サイトの私の部分は、コードがルートレベルで/ IT /ディレクトリを追加しませんなぜあなたは迷っている場合にはdomain.com/site/に常駐します)

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; 

} 

私はそれを改善するために何ができますか?私は確かに足の仕事に入れて喜んでです。あなたが研究することの方向に私を指すことができるなら、私はそこからそれを取ることができて嬉しいです。

ありがとうございます!

答えて

1

Aもう少し簡潔なバージョンはすなわち、URLから/ IT /一部を削除/挿入するために正規表現を使用する場合があります。

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

少し簡潔ですか?これはまさに私が探していたものです。かなり面白いです、私は正規表現でO'Reillyの本を買ったばかりです。彼らはまだ十分に育っていないだけで、1つを使用すると思った!あなたのお時間をありがとうございました。 – EricDobson

0

あなたはサーバサイドの言語に依存しますが、ほとんどの言語はi18n(国際化)のサポートが優れています。そうすれば、1つのレイアウト内に複数言語のサイトを作成することができます。これの利点は、何か変更があった場合にコードを2回変更する必要がないことです。

私の答えは本当にあなたのスクリプトを改善する答えではありませんが、私はあなたの完全なサイトには良い改善だと思う。

+0

私はあなたの応答を感謝しています。あなたが描いているものは私の理想だと思います。この場合、サイトには約20ページしかありません。すぐに把握して実装するのが最も簡単なものでした。今私は戻って、もっと学ぶためにそれを洗練する時間があります。 – EricDobson

関連する問題