2013-04-25 44 views
0

我一直試圖解決這個問題,因爲昨天,但我不能讓我的頭在附近。我異步加載我的谷歌地圖,但下面的代碼引起了一個錯誤,這是由於信息框沒有被正確加載。異步加載谷歌地圖與信息框錯誤

我的錯誤是: 信息框沒有定義

我的代碼是:

function loadScript(callback) { 
    var map = document.createElement('script'); 
    map.type = 'text/javascript'; 
    map.src = 'https://maps.googleapis.com/maps/api/js?key=my_key_goes_here&sensor=false&callback=initialize'; 
    document.body.appendChild(map);    
    map.onload = function() { 
     var box = document.createElement('script'); 
     box.type = 'text/javascript'; 
     box.src = 'https://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox_packed.js'; 
     document.body.appendChild(box); 
     box.onload = callback; 
    }; 
}   
window.onload = loadScript; 

回答

0

您指定的參數傳送給loadScript, '回調'。然後在你的map.src中指定callback=initialize。你可以在window.onload上調用loadScript,但是你沒有指定參數。所以box.onload不知道callback的任何值我猜,因爲它不能從map.src字符串中奇怪地猜測'初始化'。

有意義嗎?

+0

是的,我完全理解。我在這裏得到了我的答案http://stackoverflow.com/questions/12148279/load-js-scripts-asynchronously-in-order-waiting-the-previous-one-is-complete,但我看到了問題,但我可以' t修復它:( – 2013-04-25 15:02:08

+0

實際上,你想要執行初始化函數在地圖加載或框加載? – duncan 2013-04-25 15:33:26

+0

它將需要執行框加載它的工作,我認爲 – 2013-04-25 15:39:41