2017-02-28 88 views
0

我有一個獨特的問題,即我有一個有很多有趣的地方的社交網站。每個地方都有一個谷歌地圖。今天我看到一個問題。錯誤:initMap不是函數

當我用google地圖添加新地址來製作地圖時,它不起作用。

我檢查先前添加的地方,他們通常有地圖,雖然錯誤

"initMap is not a function".

的哪些錯誤?爲什麼在新創建的地方從谷歌API地圖不起作用?我用我的API密鑰:

<script async defer src="https://maps.googleapis.com/maps/api/js?key=MY_API&callback=initMap"></script> 

回答

1

在代碼中是否有一個名爲「initMap」的函數?如果沒有,你會得到這個錯誤。異步屬性可讓瀏覽器在加載Maps JavaScript API時呈現網站的其餘部分。當API準備就緒時,它將調用使用callback參數指定的函數。如果您想要使用不同名稱的不同回調函數,那很好,但您必須相應地修改此請求URL。如果您願意,也可以完全刪除回調參數,但您需要在代碼中調用函數來加載地圖。如果你這樣做,你還需要刪除異步延遲,否則你會得到一個錯誤,說谷歌沒有定義。修改後的腳本標籤是:

<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY"></script> 

我有一個例子在這裏展示了這一點:

https://jsfiddle.net/gy3yg9ma/11/

請插入使用示例自己的API密鑰。注意我必須調用initMap();手動在我的代碼中,因爲我刪除了回調參數。只有調用函數才能加載地圖,地圖纔會加載。

我希望這有助於!

2

可能來自代碼中的腳本位置。確保;

<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY"></script> 

在包含initMap函數的腳本塊後加載。

<script type="text/javascript"> 
function initMap() { 
// 
} 
<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY"></script>