javascript

javascript 파일을 불러올때 parameters 값을 넘기는 방법

jeeyong 2016. 7. 5. 15:38

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;
}

소스분석해보면 왜 이 생각을 못했지? 라는 생각이 들만큼 간단한데 기발하다!