1

私はクライアントのためにバイリンガルのウェブサイトを作成しています。異なる言語のサイトの2つのバージョンが作成され、2つのフォルダーに保存されます:/ en / / chi /

私がやりたいのは、2つの言語を切り替えるためのリンクを作成することです。概念レベルでは、Javascriptが現在のURLを検出してさまざまなコンポーネントに分割し、その一部を変更して(この場合、/en/と/chi/の間で変更)、次の場合にその新しいURLに移動できることを理解しています。リンクをクリックします。

しかし、私はjavascriptの知識がまったくないので、実行方法がわかりません...このページに出くわしました:http: //css-tricks.com/snippets/javascript/get-url-and-url-parts-in -javascript / ですが、変更して新しいリンクに移動する方法については説明していません。

よろしくお願いします!!

4

3 に答える 3

2

Shift +クリックして新しいウィンドウで開くなどのユーザビリティの考慮事項を破らないよう<a>にするには、他の言語のURLを指すプレーンな古いリンク()を作成する必要があります。JavaScriptを介してリンクを構築することに問題はありませんが、PHPまたは使用しているテンプレート言語を使用してサーバー上でリンクを構築することもできます。

これは、JavaScriptを使用してこれを実行するスクリプトです。これを実行したい場合は、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>
于 2012-03-29T17:56:59.993 に答える
0

単に完全な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が自動的に読み込まれます。

これがあなたが遊ぶための実用的なフィドルです。

于 2012-03-29T12:15:32.443 に答える
-1

を変更する必要があるようです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

于 2012-03-29T12:19:25.690 に答える