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

JavaScript URL參數(shù)讀取改進(jìn)版

下面是腳本之家一直也在用的幾種方法
復(fù)制代碼 代碼如下:
<script language="Javascript" type="text/Javascript">
function request(paras){
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;
}
}
//下面是應(yīng)用代碼
var theurl
theurl=request("url");
if (theurl!=''){
location=theurl
}
</script>

下面是正則函數(shù)
Javascript正則實(shí)現(xiàn)url鏈接的解析類
http://www.jb51.NET/article/15000.htm

下面的代碼有點(diǎn)亂
/* 《JavaScript權(quán)威指南》介紹的更簡潔的取 URL 參數(shù)的方法,不用正則表達(dá)式,用一次循環(huán)。一次性返回一個(gè)對象的好處是只需要調(diào)用一次此函數(shù),參數(shù)和值對可以存在一個(gè)對象里,以后再取其它參數(shù)的值就不用再調(diào)用此函數(shù)了,只要取對象的屬性就行了。
復(fù)制代碼 代碼如下:
* 用法:
* var args = getArgs( ); // 從 URL 解析出參數(shù)
* var q = args.q || ""; // 如果定義了某參數(shù),則使用其值,否則給它一個(gè)默認(rèn)值
* var n = args.n ? parseInt(args.n) : 10;
*/
var getArgs = function ()
{
var args = new Object( ); //聲明一個(gè)空對象
var query = window.location.search.substring(1); // 取查詢字符串,如從 http://www.snowpeak.org/testjs.htm?a1=v1&a2=&a3=v3#anchor 中截出 a1=v1&a2=&a3=v3。
var pairs = query.split("&"); // 以 & 符分開成數(shù)組
for(var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf('='); // 查找 "name=value" 對
if (pos == -1) continue; // 若不成對,則跳出循環(huán)繼續(xù)下一對
var argname = pairs[i].substring(0,pos); // 取參數(shù)名
var value = pairs[i].substring(pos+1); // 取參數(shù)值
value = decodeURIComponent(value); // 若需要,則解碼
args[argname] = value; // 存成對象的一個(gè)屬性
}
return args; // 返回此對象
}

它的突出優(yōu)點(diǎn)就是程序只用執(zhí)行一次提取操作,以后再重復(fù)取參數(shù)值,都不用再執(zhí)行程序了。取 URL 參數(shù)還是這樣比較簡便易行,又好理解。

下面是我此前發(fā)表的“不用循環(huán)”但“有些太復(fù)雜”的版本:
復(fù)制代碼 代碼如下:
//不用循環(huán)純用正則實(shí)現(xiàn)從 URL 中取參數(shù)的值。取代循環(huán)的核心技術(shù)是字符串的 replace() 方法可以用函數(shù)作第二參數(shù),按用戶定義的方式去替換。
//若有此參數(shù)名但無值,則返回空字符串;若無此參數(shù)名,返回 undefined。
var getArg = function(argname)
{
var str = location.href;
var submatch;
//先從 URL 中取出問號和井口與之間的查詢字符串,如從 http://www.snowpeak.org/testjs.htm?a1=v1&a2=&a3=v3#anchor 中截出 a1=v1&a2=&a3=v3。
//問號是模式的特殊字符,所以要寫成 /?;井號可有可無,所以模式結(jié)尾是 #?
if (submatch = str.match(//?([^#]*)#?/))
{
//取到捕捉的子匹配形如 a1=v1&a2=&a3=v3,在前面加個(gè) & 做成規(guī)則的 &a1=v1&a2=&a3=v3 便于下一步替換
var argstr = '&'+submatch[1];
//做個(gè)替換用的函數(shù),把找到的每組形如 &a1=v1 替換成 a1:"v1", 這樣的對象定義用的屬性聲明
var returnPattern = function(str)
{
//$1 和 $2 代表捕捉到的第1個(gè)和第2個(gè)子匹配,必須用在字符串里
return str.replace(/&([^=]+)=([^&]*)/, '$1:"$2",');
}
//執(zhí)行一個(gè)全局的正則替換,第二參數(shù)就是剛才定義的替換函數(shù),把 a1=v1&a2=&a3=v3 替換成 a1:"v1",a2:"",a3:"v3",
argstr = argstr.replace(/&([^=]+)=([^&]*)/g, returnPattern);
//最后再執(zhí)行一個(gè)對象的聲明,需要形如 var retvalue = {a1:"v1",a2:"",a3:"v3"}; 的對象聲明,而剛才替換完的字符串結(jié)尾還有個(gè)逗號,把結(jié)尾的逗號用 substr 截掉即可
eval('var retvalue = {'+argstr.substr(0, argstr.length-1)+'};');
//現(xiàn)在就得到了一個(gè)對象,URL 中每個(gè)參數(shù)名是其屬性名,參數(shù)值是對應(yīng)的屬性值
return retvalue[argname];
}
}

//測試
document.write('a1='+getArg('a1')+', a2='+getArg('a2')+', a3='+getArg('a3'));

JavaScript技術(shù)JavaScript URL參數(shù)讀取改進(jìn)版,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 男神插曲女生软件完整版 | 好紧好湿太硬了我太爽了小说 | 亚洲国产三级在线观看 | 偷窥 亚洲 色 国产 日韩 | 国产成人综合在线观看 | adc年龄确认大驾光临入口 | 美国色情三级欧美三级纸匠情挑 | 国产成人高清在线观看播放 | 在线看片成人免费视频 | 亚洲AV久久久久久久无码 | 伊人网站在线 | 天天拍拍国产在线视频 | 中文字幕一区二区三区在线观看 | 91传媒蜜桃香蕉在线观看 | 空姐被黑人 苏晓曼 | 国产免费高清mv视频在线观看 | 51成人精品午夜福利AV免费七 | 特大黑人娇小亚洲女mp4 | 国产精品高清视亚洲一区二区 | 国产在线观看91精品 | 365电影成人亚洲网在线观看 | 亚洲免费精品视频 | 91精品国产色综合久久不 | 暖暖 视频 在线 观看 高清 | 女张腿男人桶羞羞漫画 | 1a级毛片免费观看 | 失禁h啪肉尿出来高h | 日本片bbbxxx| 亚洲国产高清在线 | 亚洲 日韩 在线 国产 视频 | 噼里啪啦免费观看视频大全 | 女人被躁到高潮嗷嗷叫69 | 91麻精品国产91久久久久 | 美女逼逼毛茸茸 | 久久久精品免费视频 | 多肉np一女多男高h爽文现代 | 免费看黄色小说 | 老女老肥熟国产在线视频 | 日韩 无码 手机 在线 | 亚洲AV色香蕉一区二区三区 | 入禽太深视频免费视频 |