2010-12-27 3 views
1

을 추가합니다 JS 스크립트 당신이 그러나,이 같은 백분율 스크립트 파일을 공유하는 <head>어떻게 하나 추가 스크립트

에 넣어 2 개 스크립트 파일을로드합니다. 둘 다 같은 페이지에로드되는 경우 util 파일은 한 번만로드되기를 원합니다. 그 중 하나가로드 된 경우

의 폴더의 유틸리티는 여전히 내가

var s = document.createElement("script"); 
s.src = s3 + "/js_enc/utils.js"; 
s.type = "text/javascript"; 
document.getElementsByTagName("head")[0].appendChild(s); 

가장 좋은 방법은 무엇입니까

을 사용하고 <script src=...utils.js> ... 단지 2 스크립트 를 사용하지 못할 ... 한 번로드됩니다 이것을 달성하기 위해?

감사

답변

2

이가 선언 될 때 Util 스크립트 만로드되기 때문에, 문제가 아닌 것 같아 :

<script type='text/javascript' src='util.js'></script> 
<script type='text/javascript' src='script1.js'></script> 
<script type='text/javascript' src='script2.js'></script> 

을하지만 당신은 스크립트가로드되었는지 확인하려면 , 당신은

var utilFound = true; 

그런 다음이 설정 가능 여부를 확인하기 위해 각 스크립트에서 확인

같은를 Util 스크립트에서 전역 변수를 설정할 수 있습니다.

if(!utilFound) { alert("Util not loaded!"); } 

또한 예를 들어, 어떤 조건에 따라 변수를 전환 할 수 있습니다 :

if(utilFound) { 
    alert("Util hasn't been accessed yet."); 
    utilFound = false; 
} 
else { 
    alert("Util has already been accessed."); 
} 

UPDATE 당신의 편집으로 당

, 솔루션 것 "설정 한 경우 전환 확인" 잘 작동합니다. 변수가 설정된 경우 document.createElement 코드를 실행하지 마십시오. 당신의 util.js 파일에서

하는 utilLoaded 검사/토글, 각 스크립트에

var utilLoaded = false; 

다음 추가를 당신의 조각을 추가, 플러스 :

if(!utilLoaded) { 
    var s = document.createElement("script"); 
    .... 
    utilLoaded = true; 
} 
+0

내가 캔트를 .... 난 단지 추가해야 내 원래 스크립트의 스크립트 태그 – Himberjack

+0

코드가 어떻게 설정되어 있는지 이해하려면 더 많은 정보가 필요합니다. – Ben

+0

제 qeeustion을 편집했습니다. 덕분에 – Himberjack

관련 문제