2016-10-25 6 views
-3

Bootstrap 메인 프레임이있는 Intel XDK를 사용하여 모바일 응용 프로그램을 개발했습니다. HTML 코드와 몇 가지 외부 js 파일을 가지고 실행할 수있는 기능이 있습니다. 어떤 이유로 인해 JS 파일의 dosmth() 함수가 HTML보다 먼저로드되지 않으므로 결과가 표시되지 않습니다. 함수는 문자열 배열을 반환해야합니다. 누군가 내 코드에 어떤 문제가 있는지 말해 줄 수 있습니까? 나는 무엇이 없는가.javascript의 외부 함수가 html보다 앞에로드되지 않았습니다.

HTML 제목이 파일을 포함합니다.

 <script src="js/file.js"></script> 

이것은 내 HTML 파일에서 함수를 호출 할 때 사용되는 코드입니다.

<h4> 
     <script type="text/javascript"> 
       document.write(dosmth()); 
     </script> 
    </h4> 

js 파일의 메소드 코드.

 function getCities() 
      { 
      var url = file.api + "name"; 
      console.log(url); 
      $.getJSON(url).done(function(response){ 
           if (!response.length) { 
           console.warn("Empty"); 
       } 
          file.name = response; 
         $('body').trigger('name-data'); 
          console.log(response); 
          return (response); 
        }.fail(function(data, status, error){ 
         console.error("Something went wrong"); 
            }); 
        } 
+0

'getCities'는 "dosmth"함수입니까? 그렇다면 [비동기 호출 응답을 어떻게 반환합니까?] (http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an- 비동기 호출) – JJJ

+0

예, 동일합니다. 이름을 편집하는 것을 잊어 버렸습니다. 죄송합니다. 그러나 당신이 보낸 링크는 매우 유용하지만 코드를 작성하는 방법은 링크에서 수행하는 것과 동일합니다. 불행히도 내가 가진 문제를 푸는 데 아무런 도움이되지 않습니다. 함수의 코드는 콘솔에서 실행하면 완벽하게 작동하지만 html의 어딘가에서 결과를 얻으려고하면 전에 언급 한 문제가 발생합니다. – user6821889

+0

아니요, 같은 방법으로 작성하지 않아도됩니다. 중복으로. 당신은 그것을 읽고 * 이해해야합니다; AJAX 호출에서 값을 반환하는 것은 단순히 불가능합니다. – JJJ

답변

0

아마도 도움이 될 것입니다.

먼저 HTML 마크 업을 선택할 수 있는지 확인하십시오. 예를 들어, h4의 ID를 지정하십시오.

<script type="text/javascript"> 
    window.onload = function() { 
     getCities(); 
    ); 
</script> 

는 대신 아무것도 반환하는, 우리가 h4을 업데이트 : 문서가 JS 함수를 호출하기 전에로드를 완료 할 때까지

<h4 id="cities"></h4> 

는 또한 기다릴 필요가있다.

function getCities() 
{ 
    var url = file.api + "name"; 
    $.getJSON(url).done(function(response){ 
     if (!response.length) { 
      console.warn("Empty"); 
     } 
     // don't know what these two lines are meant to do 
     file.name = response; 
     $('body').trigger('name-data'); 
     // update the h4 element 
     $('#cities').html(response); 
     // the next line was missing a ")" before ".fail" 
    }).fail(function(data, status, error){ 
     console.error("Something went wrong"); 
    }); 
}