2017-02-28 5 views
0

Ich habe ein einzigartiges Problem, nämlich ich habe eine soziale Website mit vielen interessanten Orten. Jeder Ort hat eine Google Map. Und heute sehe ich ein Problem.Fehler: initMap ist keine Funktion

Wenn ich einen neuen Ort mit Adresse hinzufügen, um Karte von Google API zu machen, funktioniert es nicht.

Ich war vorher hinzugefügt Orte überprüft und sie in der Regel Karte haben, obwohl Fehler

"initMap is not a function".

Was ist falsch? Warum in neu erstellten Orten funktioniert die Karte von Google API nicht? Ich benutze es mit meinem api-Schlüssel:

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

Antwort

1

Gibt es eine Funktion „initMap“ im Code genannt? Wenn nicht, erhalten Sie diesen Fehler. Mit dem async-Attribut kann der Browser den Rest Ihrer Website rendern, während die Maps-JavaScript-API geladen wird. Wenn die API bereit ist, ruft sie die mit dem Rückrufparameter angegebene Funktion auf. Wenn Sie eine andere Callback-Funktion mit einem anderen Namen haben möchten, ist das völlig in Ordnung, aber Sie müssen diese Anfrage-URL entsprechend ändern. Sie können den Callback-Parameter auch vollständig entfernen, wenn Sie dies wünschen, aber Sie müssen in Ihrem Code einen Funktionsaufruf durchführen, um die Karte zu laden. Sie müssen auch asynchrone Verzögerung entfernen, wenn Sie dies tun, sonst erhalten Sie eine Fehlermeldung, dass Google nicht definiert ist. Das modifizierte Script-Tag wäre:

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

ich ein Beispiel haben diese hier demonstriert:

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

Sie bitte Ihre eigene API-Schlüssel legen Sie die Probe zu verwenden. Beachten Sie, wie ich initMap() aufrufen musste; manuell in meinem Code seit ich den Callback-Parameter entfernt habe. Die Karte wird erst geladen, wenn eine Funktion aufgerufen wird, um sie zu laden.

Ich hoffe, das hilft!

2

Wahrscheinlich stammt von Skriptposition in Ihrem Code. Stelle sicher;

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

laden nach Skriptblock mit InitMap-Funktion.

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