92 votes

L'API Google Maps déclenche le message "Uncaught ReferenceError : google is not defined" uniquement en cas d'utilisation d'AJAX.

J'ai une page qui utilise l'API Google Maps pour afficher une carte. Lorsque je charge la page directement, la carte apparaît. Cependant, lorsque j'essaie de charger la page en utilisant AJAX, j'obtiens l'erreur suivante :

Uncaught ReferenceError: google is not defined

Pourquoi ?

C'est la page avec la carte :

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
function initialize() {
  directionsDisplay = new google.maps.DirectionsRenderer();
  var chicago = new google.maps.LatLng(41.850033, -87.6500523);
  var mapOptions = { zoom:7, mapTypeId: google.maps.MapTypeId.ROADMAP, center: chicago }
  map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
  directionsDisplay.setMap(map);
}
$(document).ready(function(e) { initialize() });
</script>
<div id="map_canvas" style="height: 354px; width:713px;"></div>

Et voici la page avec l'appel AJAX :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(e) {
    $('button').click(function(){
        $.ajax({
            type: 'GET', url: 'map-display',
            success: function(d) { $('#a').html(d); }
        })
    });
});
</script>
<button>Call</button>
<div id="a"></div>
</body>
</html>

Merci pour votre aide.

1voto

J'ai essayé sur différents navigateurs et la réponse pour moi a été que c'est très important ont dans la balise script ce type="text/javascript"

Il est très important d'ajouter à chaque js script pour la compatibilité avec les navigateurs.

<script type="text/javascript" src="ANY_FILE_OR_URL"></script>

Après cela, les questions comme Uncaught ReferenceError: google is not defined ou d'autres (qui ne peuvent charger aucune référence sont partis)

-1voto

Rupesh Points 927

Pour moi

Ajout de cette ligne

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

Avant cette ligne.

<script id="microloader" type="text/javascript" src=".sencha/app/microloader/development.js"></script>

a travaillé

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X