Passing Arguments parameter to External JavaScript Files
//-------------------------------------
< 방법 1 >
- data 속성 이용
- html 파일
<script id="helper" data-name="helper" src="helper.js"></script>
- js 파일
const name = document.getElementById('helper').getAttribute('data-name');
//-------------------------------------
< 방법 2 >
- 쿼리 문자열 파싱
- html 파일
<script src="helper.js?name=helper"></script>
- js 파일
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;
}
//-----------------------------------------------------------------------------
< ES6 모듈에서 인자 받기 >
- html 파일
<script type="module" src="helper.js?name=helper1"></script>
- js 파일
// import.meta.url 이 쿼리 문자열 정보를 가지고 있음
var url = new URL(import.meta.url);
var search = url.search;
const searchParams = new URLSearchParams(search);
var parmVal = searchParams.get('name');
let val = decodeURI(parmVal);
//-------------------------------------
// 참고
https://getbutterfly.com/passing-arguments-to-external-javascript-files/
https://flaming.codes/en/posts/es6-import-with-parameters
'Code > JavaScript' 카테고리의 다른 글
[정규식] 문자열중 일부분 추출 (0) | 2022.12.03 |
---|---|
[Javascript] 정규식에서 g 플래그 사용시 주의 사항 (0) | 2022.11.27 |
[Javascript] Callback 함수의 추가 파라미터 설정 (0) | 2022.05.02 |
[Javascript] 키보드 입력 키값 (0) | 2022.05.01 |
[Javascript] Deno Web Framework (0) | 2022.04.21 |