js获取或设置当前窗口url参数的小例子


// 获取当前窗口url中param参数的值
function get_param(param){
    var query = location.search.substring(1).split('&');
    for(var i=0;i<query.length;i++){
        var kv = query[i].split('=');
        if(kv[0] == param){
            return kv[1];
        }
    }
    return null;
}

// 设置当前窗口url中param的值
function set_param(param,value){
    var query = location.search.substring(1);
    var p = new RegExp("(^|&"+param+")=[^&]*");
    if(p.test(query)){
        query = query.replace(p,"$1="+value);
        location.search = '?'+query;
    }else{
        if(query == ''){
            location.search = '?'+param+'='+value;
        }else{
            location.search = '?'+query+'&'+param+'='+value;
        }
    }   
}


注意location.search获取到的是url中?开始到#之间的内容(包含?但不包含#)。

在上一个翻页代码,其中用有到了上面两个函数


// 上一页
function page_pre(current_page,page_total){
    if(current_page <= 1 || current_page > page_total){
        return false;
    }
    var pre_page = parseInt(current_page) - 1;
    set_param('page',pre_page);
}

// 下一页
function page_next(current_page,page_total){
    if(current_page < 1 || current_page >= page_total){
        return false;
    }
    var next_page = parseInt(current_page) + 1;
    set_param('page',next_page);
}