HTML 소스를 간략화 시키기 위해 따로 javascript 소스를 파일로 만들어서 불러오는 방식을 이용하기도 한다.
이럴때 일부 로직에선 parameters를 받아서 처리해야 할 경우가 생기는데 이럴때 parameters를 넘기고 소스에선 받아서 바로 사용할 수 있는 방법을 설명한다.
출처
http://feather.elektrum.org/book/src.html
아래 처럼 javascript 소스를 호출한다는 가정하고
<script src="http://elektrum.org/cal.js?show=appts;user=veri" type="text/javascript"></script>
cal.js 소스내에 아래 코드를 삽입하면 params.파라메터 로 접근이 가능한것이다.
var scripts = document.getElementsByTagName('script'); var myScript = scripts[ scripts.length - 1 ]; var queryString = myScript.src.replace(/^[^\?]+\??/,''); var params = parseQuery( queryString ); function parseQuery ( query ) { var Params = new Object (); if ( ! query ) return Params; // return empty object var Pairs = query.split(/[;&]/); for ( var i = 0; i < Pairs.length; i++ ) { var KeyVal = Pairs[i].split('='); if ( ! KeyVal || KeyVal.length != 2 ) continue; var key = unescape( KeyVal[0] ); var val = unescape( KeyVal[1] ); val = val.replace(/\+/g, ' '); Params[key] = val; } return Params; }
소스분석해보면 왜 이 생각을 못했지? 라는 생각이 들만큼 간단한데 기발하다!
'javascript' 카테고리의 다른 글
timestamp javascirpt (1) | 2011.03.31 |
---|---|
Internet Explorer7 에서 hidden iframe에 form 전송시 액세스 거부 오류 발생. 정정 파일태그 규약 (1) | 2011.03.17 |
IE6(internet Explorer 6) 에서 jQuery history plugin사용중에 hash값을 잘못 가져오는 현상 (1) | 2011.02.24 |
[퍼옴] Javascript 상에서 private, public, static (0) | 2010.06.09 |
IE에서 Object 복사할때 FlashVars parameter 값이 복사되지 않는 경우 (0) | 2010.02.18 |