Google Map API V3 - ReferenceError: google n'est pas défini
Je suis en train d'apprendre à créer des cartes google maps en étudiant les exemples de base de google.
En gros, j'ai copié et collé les scripts dans les balises d'en-tête et la console de firebug a renvoyé l'erreur suivante:
ReferenceError: google is not defined
J'ai la suite de plusieurs scripts chargés dans la tête avec la carte de google, les scripts. Je ne sais pas pourquoi il me jette à l'erreur.
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<!-- nmr is used to write my own scripts -->
<script>var nmr = jQuery.noConflict();</script>
<!-- Google Map scripts -->
<script>
function initialize() {
var mapOptions = {
zoom: 13,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
};
function loadScript() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://maps.googleapis.com/maps/api/js?key=AIzaSyB7CgOuhFLDkh2VAGW1S2Y" + "sensor=false" + "callback=initialize";
document.body.appendChild(script);
}
window.onload = loadScript;
</script>
J'ai aussi essayé d'ajouter ce avant la fonction d'initialisation, mais il ne fonctionne pas.
<script> var google = jQuery.noConflict(); </script>
Peut aider quelqu'un? Merci!
Hey vous comprendre le problème, je vais avoir le même problème
OriginalL'auteur user1824996 | 2013-07-04
Vous devez vous connecter pour publier un commentaire.
Votre source est mauvaise, je suggère également en spécifiant la version exacte que vous souhaitez charger:
OriginalL'auteur Alessandro Minoccheri
Permet de regarder ce qui se passe dans le code.
1) Permet d'ignorer l'ajax.googleapis.com depuis sa pas être utilisé à l'intérieur de la posté code de toute façon.
2) L'objet de google, qui génère l'erreur, est défini par Google Maps 3 API en elle-même, et n'a rien à voir avec jQuery, et pour ce motif, l'API v3 n'utilise pas jQuery, de sorte que la ligne ci-dessous doit être supprimé car sa n'a rien à voir avec la question avant nous.
3) Maintenant, la première chose qui est appelé le javascript, le navigateur frappe la page est la
4)de façon à ce ne la ligne ci-dessus signifie réellement? de windows.onload déclenche tard, après que tous les fichiers ont été chargés, notamment les images, les styles, les scripts et le reste de la dépendance des ressources et longtemps après que le DOM est chargé et rendus et prêt pour l'action.
Et c'est là que nous en venons à la question. Après la windows.onload appelle la loadScript fonction qui ajoute le
(par la voie de votre chaîne de requête est manquant tous les "& symboles" entre les variables de requête ....
/js?v=3&key=xyz&sensor=false&rappel=initialiser <--- le format des thats correct
5) Le tant attendu de l'API Google. Nope. Il ne fait qu'ajouter à la chargeur pour l'API, en dépit de l'url le mot de l'api dans l'url elle-même. Ouvrir et de prendre un coup d'oeil à l'intérieur du fichier ci-dessus et vous verrez un document.écrire et un bloc de diverses parties de l'API être conditionnelle chargé basé sur les paramètres de chaîne de requête que vous appelez le chargeur avec.
6) jusqu'à ce que tout cela signifie? Vous appelez la fonction initialize pensant que vous êtes l'obtention de l'API de Google, mais au lieu de cela, tout ce que vous obtenez est l'API Google Chargeur qui contient l'API qui à son tour contient la définition de l'objet de google. Si le rappel est déclenché avant l'Maps API a été attaché, et donc google n'est pas défini lorsque initialiser() la fonction callback est déclenché.
Solutions
Prendre un coup d'oeil ici pour doktormolle solution qui utilise un autre moyen de chargement de la fonction initiale --> http://jsfiddle.net/doktormolle/7cu2F/
et ici pour une solution qui, en fait, ajoute le google maps loader droit de votre page, contournant l'intermédiaire --> http://jsfiddle.net/doktormolle/zJ5em/
OriginalL'auteur NickNo