2012-02-29 4 views
1

외부 HTML을로드하고 싶습니다. 또한 외부 HTML에는 일부 JavaScript 코드가 포함되어 있습니다. 로드 기능이 스크립트를로드하지 않기 때문에, 나는 getScript을 사용해야합니다 :

외부의 요소에 액세스하려고 달러 (A $) (문서) .ready 명령을 가지고 external.js하지 않는 한 매력처럼 작동
<div id="external-content"></div> 

<script type="text/javascript"> 
    $("#external-content").load("external.html #myid", function() { 
    // do something 
    }); 
    $.getScript("external.js"); 
</script> 

.html. 그 사건이 너무 일찍 해고 된 것 같습니다. 나는 또한 명령 $ .getScript ("external.js"); .load 콜백에 넣었지만 성공하지 못했습니다. external.html을 별도로 노래하고 external.js를 포함하면 예상대로 작동합니다.

+0

external.html을로드하면 external.js를 사이트에 포함시켜야하는 이유는 무엇입니까? 그리고 external.js가 반응하는 이벤트를 시작하십시오. –

답변

0

불행히도이 타이밍은 의미가 있습니다 (즉 올바른 동작). 태그 내부의 스크립트는 external.html의 검색을 시작하고 리턴되기를 기다리지 않고 external.js의 검색으로 이동합니다. 그 동안 '기본'문서가로드되고 있으며 externa.html이 검색되기 전에 실제로 완료 될 수 있습니다.

그래서, 당신은 이에 타이밍 상황으로 실행할 수 있습니다

문서가 실제로 준비 (external.html가로드되는 것은 DOM은 스크립트가되는 조건 없음), external.js로드 및 사용할 수 있지만, 외부 .html이 아직 완전히로드되지 않았습니다. external.html 요소가 있기 전에 문서 준비 함수가 실행됩니다 (문서가 준비되었으므로!).

이 접근법을 계속하려면 external.html 내부의 요소에 대한 이벤트에 대해 기본 문서 (#myid)의 수신기에 위임하기 위해 external.js 내에 on()을 사용하는 등의 방법을 사용하는 것이 좋습니다. .

관련 문제