Google-Maps-API laden-Fehler ("'google' ist nicht definiert") im IE8

Wenn ich es lade http://maps.google.com/maps/api/js?sensor=false in einem script-tag, alles funktioniert gut für mich in Chrome, Safari, Firefox und IE9.

Allerdings, wenn ich mir im IE9 im Kompatibilitätsmodus (oder, wie mir gesagt wurde, in IE8) die Karte wird nicht geladen, und "'google' ist nicht definiert" wird protokolliert, in der Konsole.

Hier ist der relevante code mit der Zeile, ist die Auslösung der Fehler identifiziert, die mit einem Kommentar:

<html>
<head>
<title>Test Map</title>
<script type="application/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
</head>
<body>
<div id="map_canvas"></div>
<script type="text/javascript"> 
var lat=37.763154;
var lon=-122.457941;
var initialZoom=17;
var mapTypeId = 'Custom Map';
var mapStyle = [{featureType:"landscape", elementType:"all", stylers:[{hue:"#dae6c3"},{saturation:16},{lightness:-7}]}, 
                {featureType:"road", elementType:"geometry", stylers:[{hue:"#ffffff"},{saturation:-100},{lightness:100}]}];

//**The error is tripped in this next line, again only in IE9 compatibility mode or IE8*     
var styledMap = new google.maps.StyledMapType(mapStyle);

var mapType = new google.maps.ImageMapType({
    tileSize: new google.maps.Size(256,256),
    getTileUrl: function(coord,zoom) {
        return "img/tiles/"+zoom+"/"+coord.x+"/"+coord.y+".png";
    }
});
var map = new google.maps.Map(document.getElementById("map_canvas"), 
        {center:new google.maps.LatLng(lat,lon),
         mapTypeId:google.maps.MapTypeId.ROADMAP,
         zoom:initialZoom,
         mapTypeControl:false});
map.overlayMapTypes.insertAt(0, mapType);

map.mapTypes.set(mapTypeId, styledMap);
map.setMapTypeId(mapTypeId);
</script>
</body>
</html>

So, für einige Grund, und nur in IE9+Kompatibilität-Modus und den IE8, das script-tag angeben http://maps.google.com/maps/api/js?sensor=false nicht laden und/oder ausführen, bevor Sie die nachfolgenden eingebetteten Skript in den Körper.

Sind andere in der Lage zu replizieren? Wie kann ich dieses problem beheben?

  • Was sehen Sie in den Fiddler?
  • Ich dont denke, es ist deine Schuld. Seine nur des IE-Kompatibilitäts-Modus die Blockierung von aktiven scripts. (wahrscheinlich...)
InformationsquelleAutor Trott | 2011-06-13
Schreibe einen Kommentar