日期:2014-05-16  浏览次数:20415 次

javascript获取url参数
这个问题已经很多了,但是看了以前的帖还是没能解决问题~

    是这样   如   a.html   这个网页   中有   "上一页 "     和   "下一页 "

两个连接     我想实现的是     打开地址:   a.html?p=5

那么   从地址参数获取 "5 "之后     "上一页 "   有一个javascript   方法是获得参数并减   "1 "

    并弹出     a.html?p=4       这个网页

下一页就不用说了

能给个大体的代码实现就行~


------解决方案--------------------
用这个方法

/*使用方法:GetQueryValue(strGetQuery, 'paras ')
strGetQuery为url;
paras为url中的参数;
类似
var strGetQuery = location.href;
var dofile = GetQueryValue(strGetQuery, 'dofile ');
var action = GetQueryValue(strGetQuery, 'action ');
var id = GetQueryValue(strGetQuery, 'id ');
var returnURL = GetQueryValue(strGetQuery, 'returnURL ');
*/
function GetQueryValue(sorStr,panStr)
{
var vStr= " ";
if (sorStr==null || sorStr== " " || panStr==null || panStr== " "){
return vStr;
}
//sorStr = sorStr.toLowerCase();
panStr += "= ";
var itmp=sorStr.indexOf(panStr);
if (itmp <0){
return vStr;
}
sorStr = sorStr.substr(itmp + panStr.length);
itmp=sorStr.indexOf( "& ");
if (itmp <0){
return sorStr;
}else{
sorStr=sorStr.substr(0,itmp);
return sorStr;
}
}
------解决方案--------------------
String.prototype.getQueryString = function(name)
{
var reg = new RegExp( "(^|&|\\?) "+ name + "=([^&]*)(&|$) ");
var r = this.match(reg);
if (r!=null) return unescape(r[2]); return null;
}

alert(window.location.href.getQueryString( "p "));
------解决方案--------------------
本来昨天晚上准备发的,但一直发不出去,今天看了用正则,很不错。
我这过没用正则,前提是p=5放在URL中的最后。
<script type= "text/javascript ">
//以a.html?p=5为例子来讲
var p1,p2
var str=location.search; //str值为地址的查询部分,即:?p=5
var p0=str.search( "p= "); //查找字符串中 p= 的位置
//如果找到,加上2就是5所在的位置,把 5 从字符串中截取出来
p0> 0?p0=parseInt(str.substr(p0+2,str.length-(p0+2))):p0=1;
p1=p0-1; //上一页
p2=p0+1; //下一页
alert(p1+ " "+p2)
</script>
------解决方案--------------------
p1 = location.href.replace(/\bp=(\d+)/i, function($0, $1){return 'p= ' + (parseInt($1, 10) - 1)}); //上一页
p2 = location.href.replace(/\bp=(\d+)/i, function($0, $1){return 'p= ' + (parseInt($1, 10) + 1)}); //下一页
------解决方案--------------------
我记得这个问题好象很早以前就研究过了吧...

//处理QueryString,用法与Request.QueryString类似
//eg. var eg = parseQueryString( "eg ");
function parseQueryString(sTag)
{
var result = window.location.search.match( new RegExp( "([?|&]) "+ sTag + "=([^&]*)([&|$]) ") );
return (result == null) ? " " : unescape(result[2]);
}