tutorial node navegador google georreferenciación example con compatible javascript google-maps internet-explorer-8 google-maps-api-3 google-api

javascript - node - Error de carga de la API de Google Maps("''google'' no está definido") en IE8



navegador compatible con la api de javascript de google maps (5)

Asegúrese de que IE no esté en modo fuera de línea. Parece que el navegador no se está conectando a Internet.

Cuando cargo http://maps.google.com/maps/api/js?sensor=false en una etiqueta de script, todo funciona bien para mí en Chrome, Safari, Firefox e IE9.

Sin embargo, cuando miro en IE9 en modo compatibilidad (o, me dicen, en IE8 ), el mapa no se carga y "''google'' no está definido" se registra en la consola.

Aquí está el código relevante, con la línea que desencadena el error identificado con un comentario:

<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>

Por lo tanto, por algún motivo, y solo en IE9 + compatibilidad-modo e IE8, la etiqueta del script que especifica http://maps.google.com/maps/api/js?sensor=false no se carga y / o ejecuta antes del secuencia de comandos incrustada posterior en el cuerpo.

¿Otros pueden replicar? ¿Cómo corrijo este problema?


IE está descargando y luego intenta ejecutar el JS en su máquina local, mientras que los otros navegadores simplemente lo están abriendo como un archivo de texto. Puede encontrar el JS descargado de IE en donde quiera que descargue cosas por defecto.

EDITAR: a la luz de las actualizaciones, vea este violín para ver una especie de solución de trabajo. http://jsfiddle.net/h6rc3/


El problema, al parecer, es que IE 8 no tiene grok "application / javascript". Lo cambié a "texto / javascript" en la etiqueta <script> en la sección <head> y ahora mi código funciona. Y, por supuesto, si lo cambio a "application / javascript", deja de funcionar.


Una suposición es que su página funciona sobre https, mientras que la solicitud de Google es http. convierta la solicitud de Google a https y el error desaparecerá. esto funcionó para mí.

Ver: Posible solución


Mi sitio de google maps v3 dejó de funcionar en el modo de vista de compatibilidad de IE 9, IE 8 e IE7.

Motivo: el error en java-script utilizando jQuery solo se capturó al utilizar las herramientas IE F12 Developer para examinar el script. Aquí está la línea ofensiva. Al error le faltaban comillas simples del token, clase.

$(''<tr>'', { ''class'': country }).appendTo(tableSelector).append(h1).append(h2);

Al principio busqué una pista falsa, pensando que era la adición de una clave = http://maps.googleapis.com/maps/api/js?key=MY_KEY_FROM_API_CONSOLE&sensor=false

La lección es: use herramientas, Firebug o herramientas de IE o lo que sea, para examinar su javascript en busca de problemas introducidos.