Element에서 JS 파일 동적으로 로드
Last updated
Last updated
function loadJS(jsURL, run){
// JS 파일 중복 실행 방지
var scriptTag = document.querySelector('script[src="' + jsURL + '"]');
if(scriptTag) return onLoaded(scriptTag);
// JS 파일 로드
var tag = document.createElement('script');
tag.src = jsURL;
tag.setAttribute('dynamic-load-js', 'loading');
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
onLoaded(tag);
// JS 파일 로드되면 실행
function onLoaded(scriptTag){
var loaded = (scriptTag.getAttribute('dynamic-load-js') !== 'loading');
if(loaded) return run();
scriptTag.addEventListener('load', function(event){
scriptTag.setAttribute('dynamic-load-js', '동적 로드 (Jik-ji API)');
run();
});
}
} // JS 로드 후 실행 (중복 로드 방지)
loadJS('./{exportRoot}/shapeComponent.js', function (){
// JS 파일 내의 코드 호출
// window.shapeComponent.line($self);
});Jik-ji 3.1.44 버전 이상에서는 위에서 사용한 loadJS 함수가 내장되어 API를 통해 바로 사용할 수있습니다.
$self.loadJS('./{exportRoot}/shapeComponent.js', function (){
// window.shapeComponent.line($self);
});