JQueryで、URLにパラメータを追加する必要があったので、パラメータを取得、設定する関数を用意しました。
下記例では、class=”addPrm” の要素をクリックすると、name=tanaka&age=54というパラメータをURLに付加して遷移する、という感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
$( '.addPrm' ).on( 'click', function(){ var params = getParameter(); params['name'] = 'tanaka'; params['age'] = 54; window.location.href = setParameter(params); }); //パラメータを設定したURLを返す function setParameter( paramsArray ) { var resurl = location.href.replace(/?.*$/,""); for ( key in paramsArray ) { resurl += (resurl.indexOf('?') == -1) ? '?':'&'; resurl += key + '=' + paramsArray[key]; } return resurl; } //パラメータを取得する function getParameter(){ var paramsArray = []; var url = location.href; parameters = url.split("#"); if( parameters.length > 1 ) { url = parameters[0]; } parameters = url.split("?"); if( parameters.length > 1 ) { var params = parameters[1].split("&"); for ( i = 0; i < params.length; i++ ) { var paramItem = params[i].split("="); paramsArray[paramItem[0]] = paramItem[1]; } } return paramsArray; }; |
getParameter() で現在のページのURLパラメータを取得します。
setParameter() で任意のパラメータ(例ではnameとage)を追加したURLを返します。
参考になったサイト:http://moriroom.my.coocan.jp/site1/?p=1581
追記:2016/02/16
パラメータのあとに#が付いている場合に対応するように、getParameter()を修正