2010-07-05 7 views
0

웹 페이지에 다음과 같이 동적으로 js (및 CSS) 파일을 포함하려고합니다 : index.html -> loader_a.js -> a_foo.js, a_bar.js, a_foo.css 등등.
FF (appendChild 사용)에서는 문제없이 작동하지만 IE6에서는 실행되지 않습니다. dom 노드, ajax 호출 및 평가판에 추가 (http://ntt.cc/2008/02/10/4-ways-to-dynamically-load-external-javascriptwith-source.html) 및 there (게시물 # 2013676)과 같은 다양한 솔루션을 시도했지만 그 일을하지 않았습니다.Dynamic (2 수준) Javascript/CSS Loading IE6

내가 DebugBar에서 확인하면 내 포함 파일 (예 : a_foo.js)이 실제로로드되었지만 내용이 비어있는 것을 볼 수 있습니다. 다른 포함 파일 (1 레벨/직접)에서이 내용이 표시되므로 거기에 있다고 가정합니다. 문제가 ...

"오류"내가 알기로 정의되지 않은 개체는/cb/c 호출 함수가 제대로로드되지 않은 도움이 많이 없습니다. 나는 포함에 어떤 오류도 얻지 않는다.
자바 스크립트가 유효한지 확인했습니다.

누구나 궁극적 인 해결책이 있습니까? 테스트를 다시 작성하고 도움이 될만한 코드가 있으면 게시 할 수 있습니다.

감사합니다, 관련, 토마스

샘플 HTML :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<HTML lang=en><HEAD><TITLE>Test</TITLE> 

<script type="text/javascript" src="mmtest_files/jquery-1.4.2.min.js"></script> 

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

function init2() { 
    // using the data from the loaded js files 
    var a= mmf("a"); 
    document.getElementById('status').innerHTML = "Variable set:" + a; 

} 

// magic... 
include(['mmt.js'],init2); 

</script> 

<BODY > 

<H2>Test me!</H2> 
<SPAN id=status>status old</SPAN> 

</BODY></HTML> 

JS 1 1

JS2는 테스트가 포함되어 있습니다 대답에서 다중 부하된다

기능 MMF를 (PARAM) { return "Called with"+ param; }

답변

1

스크립트를 병렬로로드하려면 document.write를 사용해야합니다.

은 참조 : 나는 BTW 같은 스크립트가 Loading Scripts Without Blocking

: Loading Multiple Javascript Files In Order Asynchronously

이 (가 크롬의 일부 enchancements을해야 할 수도 있습니다)는


UPDATE

콜백 있습니다 기능은 선택 사항입니다. 종속 스크립트를 파일에 결합하는 데 사용할 수 있습니다. 예 :

function myjQueryCode() { 
    // ... 
} 

include(['jquery.js','jquery-ui.js'], myjQueryCode); 

파일이로드 된 후 jquery 종속 코드가 실행됩니다.

+0

나는 그것을 시도 할 것이다 - 그러나 나는 몇 가지 질문/코멘트를 즉시 가지고있다 : 당신의 사이트 (http://galambalazs.extra.hu/multiload/multiload.js)의 소스 코드에있는 js URL은 전혀 작동하지 않는다. more (galambalazs.fw.hu가되어야 함). 그런 다음 "typeof callback ==="fucntion ""을 확인하십시오. - fucntion이 의도 한 이유는 무엇입니까? 마지막으로 스크립트는 WebKit에 종속되어 있습니까? 그렇지 않으면 작동합니까? (WebKit/i.test (navigator.userAgent)) – trottig

+0

예, 링크가 이전 버전을 가리 키지 만 코드 소스를 볼 수 있습니다.웹킷 해킹은 제가 배제하려고하는 것입니다. 임시 수정 사항입니다. 그리고 네, 크로스 브라우저에서 작동합니다. 콜백에 대한 답변을 업데이트했습니다. – galambalazs

+0

오, 이제 나는 'typeof callback === "function"부분을 잘못 입력했다. 의도하지 않았습니다. 나는 그것을 바로 업데이트 할 것이다. – galambalazs