Javascript 파리미터에서 전달 값 읽기

주선입니다. -ㅅ-)

javascript 스크립트에서 파라미터에 있는 값을 읽는 것을 구현해보았습니다.

한참 전에 만들어둔 거라 참 … 어딘가 보고 참조했는데 잘 안되서 다시 만들었던거 같습니다.

필요해서 만들었는데 하다보니 괭장히 특이한 일이 되어버렸군요 ㄷㄷ

내용인즉슨 주소줄로 부터 호출될때 http://~~~/aaa.php?test=111 처럼 GET으로 주소줄에 덛붙여서 어떤 값을 보낼 수 있는데 이걸 JS에서 해보았습니다.

JS는 보통 브라우저 주소 줄에서 호출되지 않고 html내에 삽입되게 됩니다.

<script type="text/javascript" src="/js/test.js"></script>

그런데 여기다 파라미터를 붙여서 보내보는거죠


<script type="text/javascript" src="/js/test.js?foo=bar"></script>

이 기능을 우려먹기 위해서 jquery 플러그인으로 만들었습니다. 꼭 이 형태가 아니더라도 공통함수 형태라면 되겠죠..

/**
 * JS 호출 파라미터 추적
 * Created by jusun
 * 2021-07-06
 */
$(function($){
	$.Dparam = function(script_name){
		var script_list = document.getElementsByTagName('script');
		var check_script = "";
		for(var i = 0; i < script_list.length; i++ ) {
			if(script_list[i].src.indexOf(script_name) > -1){
				check_script = script_list[i].src;
			}
		}

		script = check_script
			.replace(/^[^\?]+\?/, '')
			.replace(/#.+$/, '')
			.split('&');


		var queries = {}
			, query;
		while(script.length){
			query = script.shift().split('=');
			queries[query[0]] = query[1];
		}
		return queries;
	}
});

Dparam … 그럼 이걸 어떻게 쓰느냐…

다음과 같은 형태로 HTML에 삽입되었다고 가정하고


<script type="text/javascript" src="/js/my_test.js?foo=bar"></script>

my_test.js에서 다음과 같이 값을 전달 받을 수 있겠죠…

//my_test.js

//파라미터로부터 전달값 가져오기
var param = $.Dparam("my_test");
var foo = decodeURI(param.foo);

alert(foo);


분명히… 보통은 쓸일이 없겠지만..

쓸때는 있을겁니다. ㅋㅋ

전 getText로 다국어 처리할 때 버튼의 이름을 언어별로 전달하기 위해서 사용했어요..

혹은 JS기반의 API를 만드실 때도 분명 유용할겁니다.

그러니 PHP스터디방에 계신 여러분도 잘 활용하시길 바랍니다.

항상 응원해주셔서 감사합니다.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.