Nessuna delle risposte attuali stanno lavorando con il 100% di coerenza per me (esclusi Google Loader, che mi porto' t provato). Non penso che controllare l'esistenza di google.maps
sia sufficiente per essere sicuro che la libreria abbia completato il caricamento. Qui ci sono le richieste di rete che sto vedendo quando l'API di Google Maps e la biblioteca Luoghi opzionale sono richiesti:
quel primo script definisce google.maps
, ma il codice che probabilmente avete bisogno (google.maps.Map
, google.maps.places
) ha vinto' essere intorno fino a quando alcuni degli altri script non sono stati caricati.
È molto più sicuro definire una richiamata durante il caricamento dell'API di Maps. @ La risposta di verti è quasi corretta, ma si basa ancora sul controllo di google.maps
in modo non sicuro.
Invece, fare questo:
HTML:
<!-- "async" and "defer" are optional, but help the page load faster. -->
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=API_KEY&callback=mapsCallback">
</script>
JS:
var isMapsApiLoaded = false;
window.mapsCallback = function() {
isMapsApiLoaded = true;
// initialize map, etc.
};
fonte
2015-08-20 18:23:08
Grazie, questo è quello che stavo cercando. – Nirmal
Sono in un ambiente con nomi, quindi il semplice riferimento a 'google' non ha funzionato per me, ho dovuto usare' window.google'. – Jon
Credo ci siano casi in cui è possibile definire "google.maps" prima che l'API di Maps abbia completato il caricamento, causando l'interruzione incoerente. Se qualcun altro ha lo stesso problema, potrebbe voler provare la mia risposta di seguito, utilizzando una richiamata. –