2

さまざまな言語を処理するために、さまざまなフォルダーに保存されている単純な .htm Web ページがあります。

en フォルダー内の default.htm ( en\default.htm およびde\default.htmなど)

URL パラメータに基づいて特定の Web ページにリダイレクトする必要があります。

指定されhttp://localhost/website/default.htm?lang=deた、私は彼をにリダイレクトする必要があります

de\default.htmファイル。つまり、ドイツ語の Web ページです。

それがASPXページだったら、ResourceManagerで簡単に仕事をやめたでしょう

.NET が提供するRequest.QueryStringオプションを使用した適切な .resx ファイル

BCL。ただし、プレーンな HTML ページを使用しているため、クライアントを作成する専門知識がありません。

JavaScript のようなサイド スクリプトを使用して URL パラメーターをクエリし、ユーザーを

必要なページ。

質問 :

任意の形式のクライアントスクリプトを使用して同じことを達成する方法を教えてもらえますか

リダイレクトを達成する?? そして、どこでスクリプト関数を呼び出すのですか?

つまり、各ポスト イベントのパラメーターをクエリします。

ありがとうございます

4

3 に答える 3

3

次の行で、javascriptを使用してパラメータのリストを非常に簡単に取得できます。

var paramArray = window.location.search.substring(1).split("&")

これにより、クエリ文字列のパラメータの配列が作成されます。そこから、質問で指定したパラメータを見つけるためのロジックを追加し、を使用して適切なリダイレクトを行う必要があります

window.location.href = 'some URL'; //causes the browser to refresh with the new URL

例:

function getQueryStringArray(){
    var assoc=[]; 
    var items = window.location.search.substring(1).split('&'); 
    for(var j = 0; j < items.length; j++) { 
       var a = items[j].split('='); assoc[a[0]] = a[1]; 
    }
    return assoc;
}

//point at which you want to determine redirection
var qs = getQueryStringArray();
var url = '';
if (qs.lang !== 'undefined' && qs.lang) {
   switch (qs.lang) {
      case 'en':
         url = 'blah';
         break;
      case 'de': 
         url = 'meh';
         break;
   }
   window.location.href = url; //reroute
 }
于 2012-08-06T07:19:42.197 に答える
2

jQuery を使用してクエリ文字列パラメーターを解析する方法については、こちらを参照してくださいJavaScript でクエリ文字列値を取得するにはどうすればよいですか?

次に、window.location を使用して別のページにリダイレクトできます。

このようなもの

<script>
    $(document).ready(function(){
   var p = getParameterByName("lang");
   var rootUrl = "yourRootUrl";
    var url = rootUrl + p + '/default.htm';
   window.location = url;
});
</script>

jQuery なし

<script>
     (function(){
          var p = getParameterByName("lang");
          var rootUrl = "yourRootUrl/";
          var url = rootUrl + p + '/default.htm';
          window.location = url;
     }());
</script>
于 2012-08-06T07:09:46.327 に答える
0

以下はあなたのためにそれをするべきです。<script></script>タグで包むだけです。

// Locate "lang=...." in the url using regex;
var a = /[\?&]lang=([^\/&#\?]+)/i.exec(window.location.pathname);
// check if the regex matched
if (a) {
    // If so, redirect the user
    window.location.href = "http://localhost/website/" + a[1] + "/index.htm";
}

これにより、URL をループする必要がなくなりますが、正規表現がどのように機能するかについての基本的な理解が必要です。

于 2012-08-06T07:34:42.597 に答える