2013-06-10 2 views
0

Я разрабатываю приложение HTML + JavaScript для ОС Android. На странице HTML я загружается другой файл JS, который имеет следующий код:JavaScript - загрузка скриптов заказ

var Map = {}; 
$.getScript("cordova-2.6.0.js",function(){ 
Map['x'] = somthin 
} 

На HTML-странице я обхвата по карте. Проблема в том, что при первом загрузке приложения все работает хорошо. Но когда я открываю другое приложение или просто возвращаюсь назад, а затем я возобновляю свое приложение, длина карты равна нулю. (Я думаю, что это связано с тем, что страница HTML загружает свои зависимости, но я не знаю, как решить эту проблему ....)
Любые предложения? Благодаря!

EDIT
Мой JS код в Мой JSFile.js:

var Map = {}; 
    $.getScript("cordova-2.6.0.js",function(){ 
     Map['X'] = 'hi'; 
    }); 

Мой JS код в HTML-странице:

<head> 
<script src="JSFile.js"></script> 
</head> 
<body> 



$(document).ready(function(){ 

     for(var i in Map) 
     { 
      alert(Map[i]); 
     } 
}); 
</body> 

Фактический результат является то, что в первый раз приложение загружается, все работает хорошо - я получаю предупреждение «привет». Но когда приложение возобновляется, я ничего не получаю.

+0

, если вы добавляете, как этот 'Map [ 'х '] = somthg', тогда 'length' всегда равно нулю – Cherniv

+0

это просто пример, я зацикливаюсь на него по (var j в Map) и увеличиваю счетчик внутри цикла. – RRR

+0

Покажите, как и когда вы делаете этот цикл – Cherniv

ответ

0

Добавьте этот код в OnLoad случае page.So, что этот код будет вызываться, когда все, что страница проходит через событие нагрузки

+0

, какой код мне нужно поставить в onload? $ .getcript ...? – RRR

+0

$ (функция() { вар Карта = {}; $ .getScript ("Cordova-2.6.0.js", функция() { Карта [ 'х'] = somthin } }); – Exor

+0

OnLoad что вы можете, пожалуйста, опубликовать пример кода – RRR

1

Поместите код в JSFile.js на $ (документ) .ready функция, как это:

var Map = {}; 
$(document).ready(function(){ 
    $.getScript("cordova-2.6.0.js",function(){ 
     Map['X'] = 'hi'; 
     for(var i in Map) 
     { 
      alert(Map[i]); 
     } 
    }); 
}); 

Помните, что $ .getScript является ASYN, так что если вы называете это так, он не будет работать:

$(document).ready(function(){ 
    var Map = {}; 
     $.getScript("cordova-2.6.0.js",function(){ 
      Map['X'] = 'hi'; 
     }); 
    //Will not work because the response may not arrive yet 
    for(var i in Map) 
      { 
       alert(Map[i]); 
      } 
    }); 
+0

- это именно мой вопрос - как я могу заставить $ .getScript выполнять перед циклом for. – RRR

Смежные вопросы