2

我有一个简单的 .htm 网页保存在不同的文件夹中,用于处理不同的语言。

en 文件夹内的 default.htm(en\default.htmde\default.htm等)

我需要根据 URL 参数重定向到特定网页,即如果用户有

指定http://localhost/website/default.htm?lang=de,我需要将他重定向到

de\default.htm文件。即德国网页。

如果是 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

请参阅this on how to parse query string parameters using jQuery How can I get query string values in 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,但它确实需要对 regexp 的工作原理有基本的了解。

于 2012-08-06T07:34:42.597 回答