2015-09-21 14 views
21

Przeszukałem ten problem w całym Internecie i żaden z nich nie dał mi żadnego rozwiązania. Mam prosty skrypt, aby wyświetlić mapę RPA.Google Maps API: TypeError: a jest undefined

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="x-ua-compatible" content="ie=edge, chrome=1" /> 
<title>Map Test</title> 
<script language="javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true"></script> 
<style> 
#map-canvas { 
    height: 300px; 
    width: 980px; 
    margin: 0; 
    padding: 0; 
    margin-top: 10px; 
} 
</style> 
</head> 
<body> 
<div id="map-canvas" class="map_canvas"></div> 
<script type="text/javascript"> 
    function initialize() 
    { 
     var mapOptions = { 
      center: new google.maps.LatLng(-29.09958,26.18434), 
      zoom: 5, 
      mapTypeControlOptions: { 
       position: google.maps.ControlPosition.TOP_LEFT 
      } 
     }; 
     map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions); 
    } 
    google.maps.event.addDomListener(window, 'load', initialize); 
</script> 
</body> 
</html> 

Ale ciągle mam ten sam błąd w kółko. Próbowałem nawet na innym serwerze.

enter image description here

Proszę o pomoc

+0

Nie mogłem replikować tego problemu przy użyciu przeglądarki Chrome 44 ~ 45. Wypróbowałem nawet Firefoksa i nie wystąpił błąd. –

+0

@KimHonoridez, problem nie ma wpływu na Chrome. Błąd występuje sporadycznie w przeglądarce Firefox 41.0.1. –

Odpowiedz

46

Ja również widziałem ten błąd często w ostatnich dniach, nie wydaje się być problem z eksperymentalnego API wersji.

obciążenia uwolnienie wersja zamiast (w zasadzie zawsze należy załadować uwalnianiu wersję produkcji)

<script language="javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true&v=3"></script> 
+0

Wielkie dzięki, zmienisz mój dzień !!!! – Siick

+2

Jestem zaskoczony, że Google domyślnie obsługuje wersję eksperymentalną (np. Niestabilną). Jednak często tak jest: "Jeśli nie określisz konkretnie wersji, domyślnie otrzymasz wersję eksperymentalną, a klienci Google Maps API for Work, którzy określą identyfikator klienta, otrzymają domyślną wersję wydania." (Z https://developers.google.com/maps/documentation/javascript/versions) –

+0

Odpowiedź załaduje najnowszą wersję "wersji" API v3. W przypadku niektórych aplikacji bardziej odpowiednie może być zażądanie konkretnej wersji (np. 3.21). Zobacz "Sprawdzone metody" Google, aby uzyskać więcej wskazówek: https://developers.google.com/maps/documentation/javascript/versions#best-practices –

1

Mapy Google rozpoczął w wyniku błędów podczas ładowania skryptu i na imprezach dotykowych. Używam go do aplikacji cordova na Androida i iOS. enter image description here

To są błędy, które otrzymałem, ale zmiana wersji obciążenia nie rozwiązała problemu.

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=MYKEY&v=3.21&libraries=geometry,places"></script> 
+0

Właśnie zrozumiałem, że ładowałem asynchronię GMaps, gdy urządzenie przechodziło do trybu online, i tam miałem niepoprawny URL. Proszę, moja sobota we mnie jest głupia. – Daniela

+0

Dobra robota w rozwiązywaniu tego problemu i dzięki za publikację wyników. Zawsze dobrze jest pomagać innym –

1

Wersja 3.30+ dotyczy tego problemu, jeśli istnieje globalny var o nazwie Map.

ex:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOURKEYHERE&v=3&callback=init" async defer></script> 
<script type="text/javascript"> 
    function init() { 
     Map.go(); 
    } 
    var Map = { 
     go: function() { 
      console.log("start engine"); 
     } 
    }; 
</script> 

Mamy ten błąd:

TypeError: a.prototype is undefined

Zmiana nazwy window.Map wtedy wszystko idzie dobrze.

Powiązane problemy