URLが、
hoge.html?param1=0001¶m2=0002
のばあい、'?'以降を、ブラウザオブジェクトでは、window.location.searchとして取得することができる。
※ 正確にはsearchの部分はURLに含まないらしい。
これを分割して、連想配列のように取得するクラスを作ってみた。
var oSearch = new CLocationSearch(location.search);
document.write(oSearch.item('param1');
のように使うことができる。
function CLocationSearch(sSource) { /* 初期化処理 */ var sAry = new Array(); /* アイテム配列を追加 */ { var nCur = 0, nRet = 0; var sSearch = sSource.substr(1); var sName, sValue; nRet = sSearch.indexOf('=', nCur) // 最初の'='を検索 while(nRet >= 0) { // '='以前が変数名 sName = sSearch.substring(nCur, nRet); nCur = nRet + 1; // 値を取り出す nRet = sSearch.indexOf('&', nCur); // 変数の区切りを検索 if (nRet == -1) nRet = sSearch.length + 1; // なければ最後まで sValue = sSearch.substring(nCur, nRet); // 配列に格納 sAry[sName] = sValue; // 次を検索 nCur = nRet + 1; nRet = sSearch.indexOf('=', nCur); } } /* 値 */ this.valueOf = function () { return sSource; } /* 値を取り出すメソッド */ this.item = function (sVarname) { try { return sAry[sVarname]; //あれば返す } catch(e) { return ''; //なければ空文字を返す } } /* 要素数 */ this.length = function () { return sAry.length; } /* toString */ this.toString = function () { return this.length + ''; } }
コメント
コメントする
※ コメントスパム対策のため、コメント本文は、おはよう、こんにちわ、こんばんわ、のいずれかから始めるようにしてください。苦し紛れですけど・・・。