/** * HTTP GETオプション解析 * * @note * 例:http://localhost/index.cgi?hoge=aaa のGET名"hoge"の値を取得する * @code * var oQuery = new CQuery(location.search); * alert(oQuery.item('hoge')); * @endcode */ function CQuery(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 = unescape(sSearch.substring(nCur, nRet)); // 配列に格納 if(sAry[sName]){ // 既に存在するなら、カンマで区切る sAry[sName] += "," + sValue; }else{ 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.items = function() { return sAry; } /* 要素数 */ this.length = function () { return sAry.length; } /* toString */ this.toString = function () { return this.length + ''; } } function load() { // GETパラメータで渡された値をformに書き込む var oQuery = new CQuery(location.search); var oForm = document.forms[0]; // 日本語のunescape()がうまくいかないためループ代入が使えない /* for(var i in oQuery.items()){ if( eval("oForm." + i ) ){ eval("oForm." + i + ".value=\"" + oQuery.item(i) + "\";"); alert( eval("oForm." + i + ".value") ); } } */ oForm.idxname.value = oQuery.item('idxname'); // インデックス指定 // alert(oForm.idxname.value); }