使用Javascript基于URL参数重定向到特定网页

使用Javascript基于URL参数重定向到特定网页,javascript,html,url,url-rewriting,Javascript,Html,Url,Url Rewriting,我有一个简单的.htm网页,保存在不同的文件夹中,用于处理不同的语言 en文件夹中的default.htm(en\default.htm和de\default.htm等等) 我需要根据URL参数重定向到特定网页,即如果用户 指定的http://localhost/website/default.htm?lang=de,我需要将他重定向到 de\default.htm文件。i、 e.德国网页 如果是ASPX页面,我会用ResourceManager轻松地完成这项工作 使用.NET提供的Reques

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

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

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

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

de\default.htm文件。i、 e.德国网页

如果是ASPX页面,我会用ResourceManager轻松地完成这项工作

使用.NET提供的Request.QueryString选项创建一个适当的.resx文件

BCL。然而,由于我使用的是纯HTML页面,所以我没有编写客户端的专业技能

像javascript这样的侧脚本,用于查询URL参数并将用户重定向到

必填页

问题:

有谁能指导我如何使用任何形式的客户端脚本来实现相同的功能

实现重定向??在哪里调用脚本函数

i、 e查询每个post事件的参数


非常感谢,请参见本节,了解如何使用jQuery解析查询字符串参数

然后,您可以使用window.location重定向到另一个页面

像这样的

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

$(文档).ready(函数(){
var p=getParameterByName(“lang”);
var rootUrl=“yourRootUrl”;
var url=rootUrl+p+'/default.htm';
window.location=url;
});
没有jQuery

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

(功能(){
var p=getParameterByName(“lang”);
var rootUrl=“yourRootUrl/”;
var url=rootUrl+p+'/default.htm';
window.location=url;
}());

您可以使用javascript非常轻松地获得参数列表,如下所示

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

这将构建查询字符串的参数数组。从这里开始,您只需要添加逻辑来查找您在问题中指定的参数,并使用

window.location.href='some URL'//使用新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
 }
函数getQueryStringArray(){ var assoc=[]; var items=window.location.search.substring(1).split('&'); 对于(var j=0;j以下内容可以帮您完成。只需将其包装在
标记中

// 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的工作原理。

不,没有,但也没有指定不使用jQuery。这只是另一种选择。此外,我正在利用S.O提供的现有解决方案,而不是重新发明轮子。这不是重新发明轮子,而是两件事:1)OP没有问如何使用jQuery。2) 你的答案要求他加入一个全新的库来支持这种语言重新路由位。。。它说Firefox不知道如何打开这个地址,因为协议(d)与任何程序都没有关联。这意味着它不是一个代码问题。这是一个URL格式问题。检查URL的格式。