用JavaScript 处理 URL 的两个函数代码

时间:2021-05-18

functionrequest(paras){//获取url的参数值,不区分大小写,如无此参数,返回空字符串.
varurl=location.href;
varparaString=url.substring(url.indexOf("?")+1,url.length).split("&");
varparaObj={}
for(i=0;j=paraString[i];i++){
paraObj[j.substring(0,j.indexOf("=")).toLowerCase()]=j.substring(j.indexOf("=")+1,j.length);
}
varreturnValue=paraObj[paras.toLowerCase()];

if(typeof(returnValue)=="undefined"){
return"";
}else{
returnreturnValue;
}
}
functionredirect(){//第一个参数是当前url,如http://localhost/demo.asp?xxx=zzz,第二个及以后的参数形式必须为xxx=yyy,mm=bbbbb最终跳转url为http://localhost/demo.asp?xxx=yyy&aaa=bbb
if(arguments.length==1){
location.href=arguments[0];
return;
}else{
varparaObj={};
if(arguments[0].indexOf("?")!=-1){
varcurUrlParas=arguments[0].substring(arguments[0].indexOf("?")+1,arguments[0].length).split("&");
for(i=0;j=curUrlParas[i];i++){
paraObj[j.substring(0,j.indexOf("=")).toLowerCase()]=j.substring(j.indexOf("=")+1,j.length);
}
}
for(i=1;j=arguments[i];i++){
paraObj[j.substring(0,j.indexOf("=")).toLowerCase()]=j.substring(j.indexOf("=")+1,j.length);
}
varnewURL="";
for(keyinparaObj){
newURL+=key+"="+paraObj[key]+"&";
}
if(arguments[0].indexOf("?")!=-1){
newURL=arguments[0].substring(0,arguments[0].indexOf("?")+1)+newURL.substring(0,newURL.length-1);
}else{
newURL=arguments[0]+"?"+newURL.substring(0,newURL.length-1);
}
location.href=newURL;
return;
}
}


第二个函数redirect如果只有一个参数时,就是简单的重定向,当有2个或以上的参数时,就能动态指定目的url,该函数可用于翻页功能,比如redirect("http:///listpage.asp","page="+parseInt(request("page"))+1);//翻页功能中的“下一页”。

*/
functionredirect(){
if(arguments.length==0){
return;
}
if(arguments.length==1){
location.href=arguments[0];
return;
}elseif(arguments.length==2&&typeof(arguments[1])=="boolean"){
(arguments[1]==true)?window.open(arguments[0]):location.href=arguments[0];
return;
}else{
varparaObj={};
if(arguments[0].indexOf("?")!=-1){
varcurUrlParas=arguments[0].substring(arguments[0].indexOf("?")+1,arguments[0].length).split("&");
for(i=0;j=curUrlParas[i];i++){
paraObj[j.substring(0,j.indexOf("=")).toLowerCase()]=j.substring(j.indexOf("=")+1,j.length);
}
}
varj=arguments.length;
for(i=1;iif(typeof(arguments[i])=="boolean"){
break;
}
paraObj[arguments[i].substring(0,arguments[i].indexOf("=")).toLowerCase()]=arguments[i].substring(arguments[i].indexOf("=")+1,arguments[i].length);
}
varnewURL="";
for(keyinparaObj){
newURL+=key+"="+paraObj[key]+"&";
}
if(arguments[0].indexOf("?")!=-1){
newURL=arguments[0].substring(0,arguments[0].indexOf("?")+1)+newURL.substring(0,newURL.length-1);
}else{
newURL=arguments[0]+"?"+newURL.substring(0,newURL.length-1);
}
if(typeof(arguments[length-1])=="boolean"&&arguments[length-1]==true){
window.open(newURL);
}else{
location.href=newURL;
}
return;
}
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章