2016-10-09 2 views
1

У меня есть вопрос о Mootools Asset. Моя цель заключается в загрузке javascript динамически, и после загрузки я хочу использовать новые функции, описанные в загруженном скрипте, и установить некоторую глобальную переменную в том скрипте, который называется загрузкой.Понимать Mootools Asset

Это мой тестовый html, но я не понимаю, почему он не работает. A не определено ... Я тестирую это в IE только до сих пор.

благодаря

<html> 
<head></head> 
<body> 
<script src='mootoolscore.js'></script> 
<script src='mootoolsmore.js'></script> 
<script> 
    var a; 
    var f = 'test.js'; 
    function seta() 
    { 
     a= 5; 
    } 
    function loadjs() 
    { 
    Asset.javascript(f, {id: 'myscr', 
      onload:function() { 
       seta(); 
       a = 8; 
      } 
    }); 
    alert(a); 
    } 
</script> 
<div style='cursor:pointer' onclick='loadjs()'>clickme</div> 
</body> 
</html> 

ответ

1

onload функция будет вызвана асинхронно, когда актив готов. Поэтому, когда вы хотите отобразить переменную a на линии alert(a), значение еще не установлено.

Вам необходимо переместить alert(a) внутри функции onload, чтобы получить желаемый результат.

+0

Это означает, что я не могу изменить глобальные переменные в функции Asset.onload? – 74hakansukur

+1

вы можете, но ваш код асинхронный. предупреждение будет срабатывать перед загрузкой. –

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