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

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

 更新時間:2007年08月13日 19:48:53   作者:  
function request(paras){ //獲取 url 的參數(shù)值,不區(qū)分大小寫,如無此參數(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(){ //第一個參數(shù)是當(dāng)前url,如 http://localhost/demo.asp?xxx=zzz, 第二個及以后的參數(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;
}
}


第二個函數(shù)redirect如果只有一個參數(shù)時,就是簡單的重定向,當(dāng)有2個或以上的參數(shù)時,就能動態(tài)指定目的url,該函數(shù)可用于翻頁功能,比如 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參數(shù)表(hash table),函數(shù)的第二個及以后的參數(shù)都是添加到該hash table中,最后把該表序列化為目的url。

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


/*
第一個參數(shù)是當(dāng)前url,如 http://localhost/demo.asp?xxx=zzz,
第二個及以后的參數(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ù)昨天臨下班前的想法,再修改一下,把第二個參數(shù)放到最后面去。

/*
Use Age:
redirect(url,[paras_1],[paras_2],...,[paras_n],[newWin])
paras_n: url參數(shù),形式如 page=1 或 type=news 等。
newWin: 函數(shù)的最后一個參數(shù),布爾類型,為true時,用新窗口(window.open)打開url,否則用當(dāng)前窗口(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;
}
}

相關(guān)文章

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

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

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

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

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

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

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

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

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

    Javascript中For In語句用法實例

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

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

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

    js表單驗證實例講解

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

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

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

    JavaScript 事件記錄使用說明

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

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

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

最新評論