直接上代碼
// 獲取當前窗口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); }