2014-06-16 3 views
0

동적으로로드 된 JS 파일에서 함수를 호출 할 때 문제가 있습니다.JS/jQuery 동적으로로드 된 JS 파일의 함수 호출?

설정 : HTML5 기록, 전체적으로 필요한 기능 등으로 동적 페이지 호출을 처리하는 기본 JavaScript "프레임 워크"가 있습니다. 눌려 졌을 때 모든 활성 링크는 페이지로드가 아닌 내 기능에 의해 처리됩니다. 내 주요 자바 스크립트 파일에서 함수를 가지고 있는데 내 동적 JavaScript 파일에서 사용하려고하는 foo()이라고 가정 해 보겠습니다. 현재

동적 페이지를 설정하는 방법은, 단지

<script type="text/javascript">file.js</script>

그들은 최대로드 HTML에있는 파일의 끝 부분에 해당 페이지를 실행하는 데 필요한 특정 자바 스크립트 파일의 라인이 있다는 것입니다 그리고 내가 foo() 함수를 files.js에서 호출하면 정의되지 않은 상태로 반환됩니다.

글로벌 JavaScript 파일에 작성한 함수를 "보도록"동적으로로드 된 JavaScript 파일을 얻으려면 어떻게해야합니까?

감사

편집 : global.js에 정의

, 즉이 <head>에 포함되어

function foo() { 
    alert('bar'); 
} 
다음

, 소스와

$.get('dynamicPage.html', function(html) { 
    $('#content').html(html); 
} 

:

<p>This is my dynamic page</p> 
<script type="text/javascript">foo();</script> 

foo(); 함수 호출이 정의되지 않은 상태로 반환됩니다.

+0

해당 기능이 전역입니까? 예를 들어'window.foo'가 정의되어 있습니까? '$ (function() {...}) '에 함수를 넣었다면이 범위 밖에서 사용할 수 없습니다. – theHacker

+0

당신이하고있는 일의 구체적인 예를 보여주십시오, 당신의 설명에서 무엇이 잘못 될 수 있는지 알아내는 것은 어렵습니다. – Barmar

+0

아니요, 그들은 단지'function foo() {..}'로 정의됩니다. – Matt

답변

0

getScript() 함수를 살펴보십시오. 페이지를로드 한 후 js 파일을로드 할 수 있습니까? http://api.jquery.com/jquery.getscript/

+0

스크립트를 추가 한 후 제거하는 방법이 있습니까? 현재 포함 된 JavaScript 파일은 내용을 바꿀 때 "버려진"상태가되어 삭제됩니다. 이는 일종의 자체 작업 가비지 클리너입니다. – Matt

+0

시도해 보았습니다 - 작동하지 않았습니다 – Matt

+0

이 문제에 대한 답변을 찾았습니까? 그렇다면 공유 할 수 있습니까? – vmachan

0

문서 준비 문장으로 캡슐화하십시오.

$ (document) .ready (function() {foo();});
+0

내 전역 파일이 캡슐화되어 있는데, 나는 여전히 동적 파일과 동일한 작업을 시도했다. – Matt

관련 문제