Javascript操作URL函數(shù)修改版
更新時間:2013年11月07日 10:16:24 作者:
一個非常不錯的Javascript操作URL函數(shù)可以新增,修改,刪除 URL參數(shù)
總結(jié)了一些方法,把它壓縮成了一個函數(shù)對象,只有幾十行代碼,使用方法簡單明了
存為ojbUrl.js
/*
說明:本代碼可自由復(fù)制修改并且使用,但請保留作者信息!
Author: Kevin WebSite: http://iulog.com/ QQ:251378427
JS 操作 URL 函數(shù)使用說明:
初始化 var myurl=new objURL(); //也可以自定義URL: var myurl=new objURL('http://www.dhdzp.com');
讀取url參數(shù)值 var val=myurl.get('abc'); // 讀取參數(shù)abc的值
設(shè)置url參數(shù) myurl.set("arg",data); // 新增/修改 一個arg參數(shù)的值為data
移除url參數(shù) myurl.remove("arg"); //移除arg參數(shù)
獲取處理后的URL myurl.url();//一般就直接執(zhí)行轉(zhuǎn)跳 location.href=myurl.url();
調(diào)試接口:myurl.debug(); //修改該函數(shù)進(jìn)行調(diào)試
*/
function objURL(url){
var ourl=url||window.location.href;
var href="";//?前面部分
var params={};//url參數(shù)對象
var jing="";//#及后面部分
var init=function(){
var str=ourl;
var index=str.indexOf("#");
if(index>0){
jing=str.substr(index);
str=str.substring(0,index);
}
index=str.indexOf("?");
if(index>0){
href=str.substring(0,index);
str=str.substr(index+1);
var parts=str.split("&");
for(var i=0;i<parts.length;i++){
var kv=parts[i].split("=");
params[kv[0]]=kv[1];
}
}else{
href=ourl;
params={};
}
};
this.set=function(key,val){
params[key]=encodeURIComponent(val);
};
this.remove=function(key){
if(key in params) params[key]=undefined;
};
this.get=function(key){
return params[key];
};
this.url=function(key){
var strurl=href;
var objps=[];
for(var k in params){
if(params[k]){
objps.push(k+"="+params[k]);
}
}
if(objps.length>0){
strurl+="?"+objps.join("&");
}
if(jing.length>0){
strurl+=jing;
}
return strurl;
};
this.debug=function(){
// 以下調(diào)試代碼自由設(shè)置
var objps=[];
for(var k in params){
objps.push(k+"="+params[k]);
}
alert(objps);//輸出params的所有值
};
init();
}
調(diào)用方法
JS 操作 URL 函數(shù)使用說明:
[code]
var myurl=new objURL(); //初始化。也可以自定義URL: var myurl=new objURL('http://www.dhdzp.com'');
var val=myurl.get('abc'); // 讀取參數(shù)abc的值
myurl.set("arg",data); // 新增/修改 一個arg參數(shù)的值為data
myurl.remove("arg"); //移除arg參數(shù)
myurl.url();//獲取處理后的URL , 一般就直接執(zhí)行轉(zhuǎn)跳: location.href=myurl.url();
myurl.debug(); //這是調(diào)試接口。修改該函數(shù)方法進(jìn)行調(diào)試
存為ojbUrl.js
復(fù)制代碼 代碼如下:
/*
說明:本代碼可自由復(fù)制修改并且使用,但請保留作者信息!
Author: Kevin WebSite: http://iulog.com/ QQ:251378427
JS 操作 URL 函數(shù)使用說明:
初始化 var myurl=new objURL(); //也可以自定義URL: var myurl=new objURL('http://www.dhdzp.com');
讀取url參數(shù)值 var val=myurl.get('abc'); // 讀取參數(shù)abc的值
設(shè)置url參數(shù) myurl.set("arg",data); // 新增/修改 一個arg參數(shù)的值為data
移除url參數(shù) myurl.remove("arg"); //移除arg參數(shù)
獲取處理后的URL myurl.url();//一般就直接執(zhí)行轉(zhuǎn)跳 location.href=myurl.url();
調(diào)試接口:myurl.debug(); //修改該函數(shù)進(jìn)行調(diào)試
*/
function objURL(url){
var ourl=url||window.location.href;
var href="";//?前面部分
var params={};//url參數(shù)對象
var jing="";//#及后面部分
var init=function(){
var str=ourl;
var index=str.indexOf("#");
if(index>0){
jing=str.substr(index);
str=str.substring(0,index);
}
index=str.indexOf("?");
if(index>0){
href=str.substring(0,index);
str=str.substr(index+1);
var parts=str.split("&");
for(var i=0;i<parts.length;i++){
var kv=parts[i].split("=");
params[kv[0]]=kv[1];
}
}else{
href=ourl;
params={};
}
};
this.set=function(key,val){
params[key]=encodeURIComponent(val);
};
this.remove=function(key){
if(key in params) params[key]=undefined;
};
this.get=function(key){
return params[key];
};
this.url=function(key){
var strurl=href;
var objps=[];
for(var k in params){
if(params[k]){
objps.push(k+"="+params[k]);
}
}
if(objps.length>0){
strurl+="?"+objps.join("&");
}
if(jing.length>0){
strurl+=jing;
}
return strurl;
};
this.debug=function(){
// 以下調(diào)試代碼自由設(shè)置
var objps=[];
for(var k in params){
objps.push(k+"="+params[k]);
}
alert(objps);//輸出params的所有值
};
init();
}
調(diào)用方法
JS 操作 URL 函數(shù)使用說明:
[code]
var myurl=new objURL(); //初始化。也可以自定義URL: var myurl=new objURL('http://www.dhdzp.com'');
var val=myurl.get('abc'); // 讀取參數(shù)abc的值
myurl.set("arg",data); // 新增/修改 一個arg參數(shù)的值為data
myurl.remove("arg"); //移除arg參數(shù)
myurl.url();//獲取處理后的URL , 一般就直接執(zhí)行轉(zhuǎn)跳: location.href=myurl.url();
myurl.debug(); //這是調(diào)試接口。修改該函數(shù)方法進(jìn)行調(diào)試
相關(guān)文章
JS實(shí)現(xiàn)unicode和UTF-8之間的互相轉(zhuǎn)換互轉(zhuǎn)
需要將PC送過來的UTF-8轉(zhuǎn)換成UNICODE才能將內(nèi)容通過短信發(fā)送出去,同樣,接收到的短信為unicode編碼,也許轉(zhuǎn)換成UTF-8才能在PC端軟件顯示出來2017-07-07
Javascript實(shí)現(xiàn)簡單二級下拉菜單實(shí)例
這篇文章主要介紹Javascript實(shí)現(xiàn)二級下拉菜單的具體過程,需要的朋友可以參考下2014-06-06
JS實(shí)現(xiàn)OCX控件的事件響應(yīng)示例
JS支持OCX控件的事件(event),當(dāng)OCX控件定義的事件發(fā)生時,JS可以捕獲該事件并對事件進(jìn)行相應(yīng)的處理2014-09-09
javascript實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
JavaScript數(shù)組去重由慢到快由繁到簡(優(yōu)化篇)
本文給大家介紹通過indexof去重,hash去重,排序后去重及set去重由慢到快有繁到簡的方法給大家介紹了js數(shù)組去重的方法,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧2016-08-08
uniapp上傳二進(jìn)制圖片的實(shí)現(xiàn)
本文主要介紹了uniapp上傳二進(jìn)制圖片的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
JavaScript控制語句及搭建前端服務(wù)器的過程詳解
這篇文章主要介紹了JavaScript控制語句及搭建前端服務(wù)器,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04

