Javascript操作URL函數(shù)修改版
更新時(shí)間:2013年11月07日 10:16:24 作者:
一個(gè)非常不錯(cuò)的Javascript操作URL函數(shù)可以新增,修改,刪除 URL參數(shù)
總結(jié)了一些方法,把它壓縮成了一個(gè)函數(shù)對(duì)象,只有幾十行代碼,使用方法簡單明了
存為ojbUrl.js
/*
說明:本代碼可自由復(fù)制修改并且使用,但請(qǐng)保留作者信息!
Author: Kevin WebSite: http://iulog.com/ QQ:251378427
JS 操作 URL 函數(shù)使用說明:
初始化 var myurl=new objURL(); //也可以自定義URL: var myurl=new objURL('http://www.dbjr.com.cn');
讀取url參數(shù)值 var val=myurl.get('abc'); // 讀取參數(shù)abc的值
設(shè)置url參數(shù) myurl.set("arg",data); // 新增/修改 一個(gè)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ù)對(duì)象
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.dbjr.com.cn'');
var val=myurl.get('abc'); // 讀取參數(shù)abc的值
myurl.set("arg",data); // 新增/修改 一個(gè)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ù)制修改并且使用,但請(qǐng)保留作者信息!
Author: Kevin WebSite: http://iulog.com/ QQ:251378427
JS 操作 URL 函數(shù)使用說明:
初始化 var myurl=new objURL(); //也可以自定義URL: var myurl=new objURL('http://www.dbjr.com.cn');
讀取url參數(shù)值 var val=myurl.get('abc'); // 讀取參數(shù)abc的值
設(shè)置url參數(shù) myurl.set("arg",data); // 新增/修改 一個(gè)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ù)對(duì)象
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.dbjr.com.cn'');
var val=myurl.get('abc'); // 讀取參數(shù)abc的值
myurl.set("arg",data); // 新增/修改 一個(gè)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)文章
JavaScript編程的10個(gè)實(shí)用小技巧
盡管我使用Javascript來做開發(fā)有很多年了,但它常有一些讓我很驚訝的小特性。對(duì)于我來說,Javascript是需要持續(xù)不斷的學(xué)習(xí)的。2014-04-04javascript中setTimeout和setInterval的unref()和ref()用法示例
本文通過一個(gè)小例子想大家講解了setTimeout和setInterval的unref()和ref()用法和使用環(huán)境,代碼很簡潔,有需要的小伙伴自己參考下吧。2014-11-11JS實(shí)現(xiàn)DOM節(jié)點(diǎn)插入操作之子節(jié)點(diǎn)與兄弟節(jié)點(diǎn)插入操作示例
這篇文章主要介紹了JS實(shí)現(xiàn)DOM節(jié)點(diǎn)插入操作之子節(jié)點(diǎn)與兄弟節(jié)點(diǎn)插入操作,涉及JavaScript節(jié)點(diǎn)的創(chuàng)建、添加簡單操作技巧,需要的朋友可以參考下2018-07-07js實(shí)現(xiàn)一個(gè)鏈接打開兩個(gè)鏈接地址的方法
這篇文章主要介紹了js實(shí)現(xiàn)一個(gè)鏈接打開兩個(gè)鏈接地址的方法,可實(shí)現(xiàn)連續(xù)打開兩個(gè)鏈接的功能,非常簡單實(shí)用的技巧,需要的朋友可以參考下2015-05-05JS使用正則實(shí)現(xiàn)去掉字符串左右空格的方法
這篇文章主要介紹了JS使用正則實(shí)現(xiàn)去掉字符串左右空格的方法,結(jié)合實(shí)例形式分析了JS針對(duì)首尾匹配及空格匹配的簡單實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-12-12js實(shí)現(xiàn)鼠標(biāo)經(jīng)過時(shí)圖片滾動(dòng)停止的方法
這篇文章主要介紹了js實(shí)現(xiàn)鼠標(biāo)經(jīng)過時(shí)圖片滾動(dòng)停止的方法,可實(shí)現(xiàn)js滾動(dòng)特效中的鼠標(biāo)懸停停止圖片滾動(dòng)的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-02-02