2016-10-25 1 views
-3

Im разрабатывает мобильное приложение с использованием INTEL XDK с мэйнфреймом начальной загрузки. У меня есть код Html и несколько внешних js-файлов с функциями для запуска на нем. По какой-то причине функция dosmth() из JS-файла не загружается перед 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-return-the-response-from-an- асинхронный вызов) – JJJ

+0

Да, это то же самое, мне жаль, что я забыл изменить имя. Однако ссылка, которую вы отправили, очень полезна, но способ, которым я написал код, такой же, как они говорят вам сделать это в ссылке. и это, к сожалению, ничего мне не дает для решения проблемы, которая у меня есть. Код функции работает отлично, если я запускаю его на консоли, но когда я пытаюсь получить результат, написанный где-то в html, у меня есть проблема, о которой я упомянул до – user6821889

+0

Нет, у вас ее нет так же, как и в дубликате. Вы должны прочитать его и * понять * его; просто невозможно вернуть значение из вызова AJAX. – JJJ

ответ

0

Возможно, это поможет.

Во-первых, убедитесь, что разметка HTML выбрана. Например, укажите идентификатор для этого h4.

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

Вы также должны ждать документа для завершения загрузки перед вызовом функции JS:

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

Вместо возвращения ничего, мы обновляем 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"); 
    }); 
} 
Смежные вопросы