我目前有一個頁面顯示結果的搜索。當用戶點擊結果時,詳細信息使用ajax獲取並加載到頁面中。在這些細節中,有一個谷歌地圖。異步顯示多個谷歌地圖
以前,我在細節頁面中有回調的Gmaps腳本。但是我遇到了這個問題,即如果用戶點擊了幾個結果,Gmaps腳本會被多次插入。
現在,我在結果頁面中加載腳本,並在傳遞所有必要參數的同時詳細信息頁面調用初始化函數。但是我得到一個undefined is not a function
錯誤。
所以我的問題是:如何構建Gmaps腳本,回調和兩個頁面(結果和細節)之間的映射的異步初始化?
結果頁面
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&key=[key]"></script>
function initialize(params) {
var directionsService, directionsDisplay, map;
directionsService = new google.maps.DirectionsService();
directionsDisplay = new google.maps.DirectionsRenderer();
// your typical gmaps stuff
}
詳情頁
<div id="map_canvas"></div>
initialize(params);
可能重複[異步谷歌地圖API V3不確定是不是一個函數(http://stackoverflow.com/questions/14184956/async-google-maps-api-v3- undefined-is-not-a-function) –
加載一張地圖不是問題(通過添加回調)。我不確定的是如何重複使用gmaps的'callback',而不會出現「您已經在此頁面上多次包含Google Maps API」的錯誤。 – greener
檢查是否存在「google.maps」。當它存在時,只需調用初始化,如果沒有,請使用加載器 –