欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用JavaScript 處理 URL 的兩個(gè)函數(shù)代碼

 更新時(shí)間:2007年08月13日 19:48:53   作者:  
function request(paras){ //獲取 url 的參數(shù)值,不區(qū)分大小寫,如無(wú)此參數(shù),返回空字符串.
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(){ //第一個(gè)參數(shù)是當(dāng)前url,如 http://localhost/demo.asp?xxx=zzz, 第二個(gè)及以后的參數(shù)形式必須為 xxx=yyy, mm=bbbbb 最終跳轉(zhuǎn)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;
}
}


第二個(gè)函數(shù)redirect如果只有一個(gè)參數(shù)時(shí),就是簡(jiǎn)單的重定向,當(dāng)有2個(gè)或以上的參數(shù)時(shí),就能動(dòng)態(tài)指定目的url,該函數(shù)可用于翻頁(yè)功能,比如 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的操作變得簡(jiǎn)單起來(lái)。
redirect 的核心是建立一個(gè)url參數(shù)表(hash table),函數(shù)的第二個(gè)及以后的參數(shù)都是添加到該hash table中,最后把該表序列化為目的url。

剛發(fā)完日志,就想到可以再改進(jìn)一下,增加一個(gè)參數(shù),決定是否用新窗口打開目的url。


/*
第一個(gè)參數(shù)是當(dāng)前url,如 http://localhost/demo.asp?xxx=zzz,
第二個(gè)及以后的參數(shù)形式必須為 xxx=yyy, mm=bbbbb 
最終跳轉(zhuǎn)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;
}
}



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

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

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

*/
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;
}
}

相關(guān)文章

  • 動(dòng)態(tài)調(diào)用CSS文件的JS代碼

    動(dòng)態(tài)調(diào)用CSS文件的JS代碼

    動(dòng)態(tài)調(diào)用CSS文件,一般用于頁(yè)面的多種顏色選擇,通過(guò)調(diào)用不同的css實(shí)現(xiàn)不用的頁(yè)面顏色效果。
    2010-07-07
  • 微信小程序scroll-view組件實(shí)現(xiàn)滾動(dòng)動(dòng)畫

    微信小程序scroll-view組件實(shí)現(xiàn)滾動(dòng)動(dòng)畫

    這篇文章主要為大家詳細(xì)介紹了微信小程序scroll-view組件實(shí)現(xiàn)滾動(dòng)動(dòng)畫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • JavaScript實(shí)現(xiàn)圖片放大預(yù)覽效果

    JavaScript實(shí)現(xiàn)圖片放大預(yù)覽效果

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)圖片放大預(yù)覽效果,幫助大家更好的理解和制作JavaScript特效,感興趣的朋友可以了解下
    2020-11-11
  • 詳解webpack解惑:require的五種用法

    詳解webpack解惑:require的五種用法

    這篇文章主要介紹了詳解webpack解惑:require的五種用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Javascript中For In語(yǔ)句用法實(shí)例

    Javascript中For In語(yǔ)句用法實(shí)例

    這篇文章主要介紹了Javascript中For In語(yǔ)句用法,實(shí)例分析了javascript使用For In語(yǔ)句遍歷數(shù)組的技巧,需要的朋友可以參考下
    2015-05-05
  • 前端常用的js函數(shù)方法

    前端常用的js函數(shù)方法

    這篇文章主要給大家分享的是常用的js函數(shù)的方法,告別搜索引擎的幫助,提高你的開發(fā)效率,,需要的朋友可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2021-12-12
  • js表單驗(yàn)證實(shí)例講解

    js表單驗(yàn)證實(shí)例講解

    這篇文章主要為大家詳細(xì)介紹了js表單驗(yàn)證,JavaScript 可用來(lái)在數(shù)據(jù)被送往服務(wù)器前對(duì)HTML 表單中的這些輸入數(shù)據(jù)進(jìn)行驗(yàn)證,感興趣的小伙伴們可以參考一下
    2016-03-03
  • javascript中的取反再取反~~沒有意義

    javascript中的取反再取反~~沒有意義

    操作符~, 是按位取反的意思,表面上~~(取反再取反)沒有意義,下面有個(gè)不錯(cuò)的示例,大家可以參考下
    2014-04-04
  • JavaScript 事件記錄使用說(shuō)明

    JavaScript 事件記錄使用說(shuō)明

    JavaScript 事件記錄使用說(shuō)明需要的朋友可以參考下。
    2009-10-10
  • 小程序開發(fā)之模態(tài)框組件封裝

    小程序開發(fā)之模態(tài)框組件封裝

    這篇文章主要為大家詳細(xì)介紹了小程序開發(fā)之模態(tài)框組件封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評(píng)論