Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

prototype.js로 URL의 쿼리스트링 값 가져오기 (parseQuery,toQueryParams)

GET방식의 호출을 하면 주소뒤에 ?id=3&nick=outsider 같은 형식의 쿼리스트링이 붙는다. 이런 부분은 JSP나 ASP에서는 request객체를 이용해서 가져올 수 있지만 Javascript에서 이것을 다뤄야 할 때도 있다.

window.location.search

를 이용하면 ?id=3&nick=outsider라는 쿼리스트링이 그대로 튀어나온다. 이걸 그대로 가공해서 사용해도 되지만 prototype.js는 이걸 위한 메서드를 제공한다. (window.location.search는 prototype.js에서 제공하는 것은 아니고 javascript에서 제공하는 것이다.)

parseQuery()
toQueryParams()

Prototype Framework의 API문서를 보면 parseQuery()은 "toQueryParams()의 별칭"이라고 나온다. 결국 기능은 toQueryParams()만 있는건데 쿼리스트링을 파라미터와 값의 쌍으로 된 Object를 리턴해 준다. API문서에 자세한 예시들이 있기 때문에 보면 금방 이해가 될 것이다.(사이트 개편된뒤로 API문서나

만약 http://www.test.com/test/test.jsp??id=3&nick=outsider 라고 호출했을 경우 다음 코드를 실행하면 주석해 보시된 내용의 값을 출력해 준다.


//var params = window.location.search.parseQuery();
var params = window.location.search.toQueryParams();
                
alert(window.location.search); // ?id=3&nick=outsider
alert(params.id);                    // 3
alert(params.nick);                 // outsider


1번과 2번줄은 아무것이나 사용해도 차이가 없다.

만약 정의되지 않거나 값이 없는 파라미터를 가져오려고 하면 undefined가 나온다.
2008/08/08 18:27 2008/08/08 18:27