天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

用JavaScript 處理 URL 的兩個函數代碼

function request(paras){ //獲取 url 的參數值,不區分大小寫,如無此參數,返回空字符串.
var url = location.href;
var paraString = url.substring(url.indexOf("?")+1,url.length).split("&");
var paraObj = {}
for (i=0; j=paraString[i]; i++){
paraObj[j.substring(0,j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=")+1,j.length);
}
var returnValue = paraObj[paras.toLowerCase()];

if(typeof(returnValue)=="undefined"){
return "";
}else{
return returnValue;
}
}
function redirect(){ //第一個參數是當前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{ 
var paraObj = {};
if (arguments[0].indexOf("?")!=-1){
var curUrlParas = 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);
}
var newURL= "";
for (key in paraObj){
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://www.xxx.com/list.ASP?page=1","page="+parseInt(request("page"))+1),還可用于url類型的搜索,如:redirect("http://www.xxx.com/search.ASP","range="+escape($("range").value),"keyword="+escape($("keyword").value)),url的操作變得簡單起來。
redirect 的核心是建立一個url參數表(hash table),函數的第二個及以后的參數都是添加到該hash table中,最后把該表序列化為目的url。

剛發完日志,就想到可以再改進一下,增加一個參數,決定是否用新窗口打開目的url。


/*
第一個參數是當前url,如 http://localhost/demo.ASP?xxx=zzz,
第二個及以后的參數形式必須為 xxx=yyy, mm=bbbbb 
最終跳轉url為 http://localhost/demo.ASP?xxx=yyy&aaa=bbb
*/
function redirect(){
if (arguments.length==0){
return;
}
if (arguments.length==1){
location.href = arguments[0];
return;
}else if(arguments.length==2){
(arguments[1]==true)?window.open(arguments[0]):location.href = arguments[0];
return;
}else{
var paraObj = {};
if (arguments[0].indexOf("?")!=-1){
var curUrlParas = 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=2; j=arguments[i]; i++){
paraObj[j.substring(0,j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=")+1,j.length);
}
var newURL= "";
for (key in paraObj){
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);
}
arguments[1]==true?window.open(newURL):location.href = newURL;
return;
}
}



根據昨天臨下班前的想法,再修改一下,把第二個參數放到最后面去。

/*
Use Age:
redirect(url,[paras_1],[paras_2],...,[paras_n],[newWin])
paras_n: url參數,形式如 page=1 或 type=news 等。
newWin: 函數的最后一個參數,布爾類型,為true時,用新窗口(window.open)打開url,否則用當前窗口(location.open)打開。默認值為 false。

Example:
redirect("http://www.google.com/search","q=hello","start=20",true); //將在google搜索"hello",并翻到第3頁,并用新窗口打開。
redirect("http://www.xxx.com/listpage.ASP","page="+parseInt(request("page"))+1); //翻頁功能中的“”。

*/
function redirect(){
if (arguments.length==0){
return;
}
if (arguments.length==1){
location.href = arguments[0];
return;
}else if(arguments.length==2 && typeof(arguments[1])=="boolean"){
(arguments[1]==true)?window.open(arguments[0]):location.href = arguments[0];
return;
}else{
var paraObj = {};
if (arguments[0].indexOf("?")!=-1){
var curUrlParas = 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);
}
}
var j = arguments.length;
for (i=1; i if (typeof(arguments[i])=="boolean"){
break;
}
paraObj[arguments[i].substring(0,arguments[i].indexOf("=")).toLowerCase()] = arguments[i].substring(arguments[i].indexOf("=")+1,arguments[i].length);
}
var newURL= "";
for (key in paraObj){
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;
}
}

JavaScript技術用JavaScript 處理 URL 的兩個函數代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 蜜桃最新网址 | 亚洲AV 日韩 国产 有码 | 色小姐.com | 欧美色图14p| 无限资源网免费看 | 少妇无码吹潮久久精品AV | 一个人免费视频在线观看 | 日本人69xxx| 亚洲免费福利在线视频 | 日韩少妇爆乳无码专区 | 在线观看免费毛片 | www免费看.男人的天堂 | 一本大道无码AV天堂欧美 | 伊人情人网综合 | 神马影院午夜伦理限级 | 中文视频在线观看 | 欧美性色生活片天天看99顶级 | 亚洲精品免费在线视频 | 99久久国产综合精品 | 伊人久久网国产伊人 | 男女爽爽无遮挡午夜视频在线观看 | 亚洲视频精品在线观看 | 久久99亚洲AV无码四区碰碰 | 色多多污污版免费下载安装 | 久久内在线视频精品mp4 | 我们日本在线观看免费动漫下载 | 国模玲玲自拍337p | 欧美123区| 亚洲精品福利一区二区在线观看 | 日本最新免费区中文 | 亚洲成人三级 | 久久re6热在线视频精品66 | zoovideo人与驴mp4 | 成人性生交大片免费看中文 | 粗好大用力好深快点漫画 | 嫩草国产福利视频一区二区 | 国产亚洲视频在线播放香蕉 | 国产骚妇BB网 | 思思re热免费精品视频66 | 日本双渗透| 樱花之恋动漫免费观看 |