2016-10-09 53 views
1

我對Mootools資產有疑問。我的目標是dinamically加載JavaScript,加載後,我想使用加載的腳本中描述的新功能,並在該腳本中設置一個全局變量,它稱爲加載。瞭解Mootools資產

這是我測試的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功能當資產準備異步觸發。因此,當您想在alert(a)行上顯示a變量時,該值尚未設置。

您需要在onload函數內移動alert(a)才能得到您想要的結果。

+0

這是不是說我不能在Asset.onload函數中修改全局變量? – 74hakansukur

+1

你可以但你的代碼是異步的。警報將在onload之前觸發。 –