2011-04-01 39 views
4

嘿傢伙, 我在我的網站上使用帶有完整地圖API的谷歌地圖。地圖只有在特定鏈接(例如顯示地圖)被點擊後纔可見和使用。由於這個映射api是一個相當大的js文件,我只想在需要的時候加載api,而不是像我現在這樣做的頁面加載。在需要時加載谷歌地圖apis腳本? jquery.getScript()?

現在我有這個在我的

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAAnf9W..." type="text/javascript"></script> 
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 

我使用jQuery和我有一個單獨的script.js文件在那裏我存儲我的所有的JavaScript。

的地圖當我點擊下面的項目,我只所示:

$('#googleMap').live('click', function(e) { 

是否有可能使用jQuery的getScript加入()來加載此鏈接被點擊,只有當上述腳本?或者至少加載它「onLoad()」而不是「onDomReady」?

+0

是的,你可以做這個,你可以發佈你的地圖激活碼的簡要例子嗎? – 2011-04-01 16:59:29

回答

10

首先,您不需要同時包含這兩種腳本。你只需要:

<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script> 

其次,你可以使用google loader(請參閱「動態加載」一節)火起來的地圖,當用戶請求,就像這樣:

$("#foo").click(function() { 
    google.load("maps", "3", {other_params:'sensor=false', callback: function(){ 
     alert('maps API loaded!'); 
     var map; 
     // do stuff with your map 
    }); 
}); 
+0

我試過了,但它在控制檯「Uncaught TypeError:Object#沒有方法'load'」時給了我這個錯誤。任何建議修復?感謝 – Faizan 2013-10-29 15:55:44

+0

,這是因爲您在訪問「google.load」之前需要加載Google API:https:// www.google.com/jsapi'' – 2015-04-11 22:07:58