HTML에서 자바스크립트를 이용한 파라메터 주고받기
tmp = window.location;
tmp = String(tmp).split('?'); //현재창의 주소에서 ?이후의 값을 배열에 담는다.
tmp = tmp[1].split('&'); //담긴 값에서 변수별로 분리한다.
//확인 및 출력
for(k in tmp){
tmp2 = tmp[k].split('=')
eval('var ' + tmp2[0] + '=tmp2[1]');
alert(tmp2[0] + ' ' + tmp2[1]);
}
다른방법은 아래와 같다.
url prameter 를 javascript 의 json (object)형태로 리턴한다. 간혹 url의 ?로 표시된 prameter를 파싱해서 사용해야할때가 있는데, 이경우 이 function을 이용하면된다. 아래 코드를 살펴보면 알겠지만, url파싱은 처음 호출시에만 하며 이후는 파싱된 object 만을 리턴한다. 이는 개발시 개발되어 테스트된 버전은 아니고, 그냥 생각나서 만들어 본 것으로 이후 버그 발견시 수정될수 있다.
- <script type="text/javascript">
- //<![CDATA[
- /**
- * getUrlParameter
- *
- * @description : 현재 url의 ?로 표기된 parameter 리턴
- * @author : blog.byuli.com
- * @version : 20081115
- * @return : parameter의 object 형태로 리턴
- */
- var getUrlParameter = function (){
- var ParameterObject = new Object();
- var locate = location.href;
- if(locate.indexOf("?")==-1){
- return ParameterObject;
- }
- var parameter = locate.split("?")[1];
- var paramAreay = parameter.split("&");
- for ( var i=0; i<paramAreay.length; i++ )
- {
- var tem = paramAreay[i].split("=");
- ParameterObject[tem[0]] = tem[1];
- }
- getUrlParameter = function () { return ParameterObject; }
- return ParameterObject;
- };
- //>]]
- </script>
사용방법은 아래와 같다. 존재하지 않는 파라메터를 콜 할경우엔 당연히 undifined를 리턴한다. 적절히 붙여 사용하면 유용하겠다.
- <script type="text/javascript">
- //<![CDATA[
- for(var ele in getUrlParameter())
- {
- document.write(ele + " : '" + getUrlParameter()[ele] + "'<br/>");
- }
- document.write(getUrlParameter().id + "<br/>");
- //>]]
- </script>
댓글 없음:
댓글 쓰기