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中?開始到#之間的內容(包含?但不包含#)。

如果是設置指定url的param值,可以用下面的函數:

// 設置指定url中param的值,返回處理后的url
function set_url_param(url,param,value){
        if(url.indexOf('?') != -1){  
                var p = new RegExp("(\\?|&"+param+")=[^&]*");
                if(p.test(url)){
                        url = url.replace(p,"$1="+value);
                }else{
                        url = url+'&'+param+'='+value;
                }
        }else{
                url = url+'?'+param+'='+value;
        }
        return url;
}       

 

再上一個翻頁代碼,其中用有到了上面兩個函數

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM