使用Javascript基于URL参数重定向到特定网页
我有一个简单的.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提供的Request.QueryString选项创建一个适当的.resx文件 BCL。然而,由于我使用的是纯HTML页面,所以我没有编写客户端的专业技能 像javascript这样的侧脚本,用于查询URL参数并将用户重定向到 必填页 问题: 有谁能指导我如何使用任何形式的客户端脚本来实现相同的功能 实现重定向??在哪里调用脚本函数 i、 e查询每个post事件的参数使用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
非常感谢,请参见本节,了解如何使用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的格式。