Ich habe eine Seite, die die Google Maps-API verwendet, um eine Karte anzuzeigen. Wenn ich die Seite direkt lade, wird die Karte angezeigt. Wenn ich jedoch versuche, die Seite mit AJAX zu laden, wird folgende Fehlermeldung angezeigt:
Uncaught ReferenceError: google is not defined
Warum ist das?
Dies ist die Seite mit der Karte:
<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>
Und das ist die Seite mit dem AJAX-Aufruf:
<!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>
Danke für Ihre Hilfe.
ajax
google-maps-api-3
grüner
quelle
quelle
Ich weiß, dass diese Antwort nicht direkt mit dem Problem dieser Fragen zusammenhängt, aber in einigen Fällen tritt das Problem "Nicht erfasster Referenzfehler: Google ist nicht definiert" auf, wenn Ihre JS-Datei vor der von Ihnen verwendeten Google Maps-API aufgerufen wird ... Also tu das NICHT:
quelle
Vermutlich initialisieren Sie etwas vor Ihrer Initialisierungsfunktion:
var directionsService = new google.maps.DirectionsService();
Verschieben Sie das in die Funktion, damit es nicht versucht, es auszuführen, bevor die Seite geladen wird.
quelle
Nicht erfasster Referenzfehler: Google ist nicht definiert. Der Fehler wird behoben, wenn der asynchrone Verzögerer aus dem Map-API-Skript-Tag entfernt wird.
quelle
Nachdem ich alle Problemumgehungen befolgt hatte, funktionierte für mich der Aufruf der API:
vor meinem:
<div id="map"></div>
Ich verwende .ASP NET (MVC)
quelle
Für mich
Hinzufügen dieser Zeile
Vor dieser Zeile.
hat funktioniert
quelle
Könnte nicht für alle relevant sein, aber dieses kleine Detail hat dazu geführt, dass meine nicht funktioniert hat:
Ändern Sie div davon:
Dazu:
quelle
Vielleicht mit
anstatt
kann dir helfen.
quelle