天氣預報(六)動態載入js從而才能訪問不同的城市天氣資料啊!
阿新 • • 發佈:2019-01-24
城市的號碼得到了,但是我們需要重新建立一個<script>才能得到該城市的天氣資料,可是script內部又不能重新建立一個新的<script>,如何是好?
百度得到的程式碼修改後如下
可是直接呼叫還是出錯,顯示我沒有定義weatherinfovar//weatherinfovar是其中一個js返回的變數var script=new Array(); var head = document.getElementsByTagName('head')[0]; for(var i=0;i<3;i++){//因為我要獲取三個不同的js,所以利用for迴圈建立三個對應<script> script[i]= document.createElement('script'); script[i].type= 'text/javascript'; script[i].src=url[i]; head.appendChild(script[i]); script[i].defer===true; }
原因如下:我在使用weatherinfovar時,也許上述新建<script>程式碼還沒有執行完畢,或新建的<script>還來不及返回weatherinfovar,這個時候weatherinfovar自然是一個未定義的變數。解決辦法如下:
script[1].onload=function(){
console.log(weatherinfovar);
}
這樣就保證了weatherinfovar是在新建的<script>返回weatherinfovar後被呼叫的。