web-dev-qa-db-fra.com

API Google Maps: impossible de lire la propriété '__e3_' de non définie

Voici l'auditeur que j'ajoute - 

var map;
    var geocoder;
    function initialize() {
        var myOptions = {
          zoom: 8,
          center: new google.maps.LatLng(22, 88),
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
    }
    //google.maps.event.addDomListener(window, 'load', initialize);
    google.maps.event.addListener(map, 'click', function(event) {
        geocoder = new google.maps.Geocoder();
        geocoder.geocode( { 'latLng': event.latLng}, function(results, status) {

            if (status == google.maps.GeocoderStatus.OK) {
                alert(results);
            } else {
                alert("Geocode was not successful for the following reason: " + status);
            }
        });
    });

Mais il génère cette erreur dans la console - 

Uncaught TypeError: Cannot read property '__e3_' of undefined
Ke
Ie
R.addListener
(anonymous function)

Essayé de chercher. Mais pas de solution.

29
Bibhas Debnath

Déplacez votre auditeur dans la fonction d'initialisation.

51
Danny Hoek

Il est difficile de dire avec seulement une petite partie de votre code, mais cela semble ne pas pouvoir trouver "carte".

Soit votre variable de carte n’est pas globale, soit accessible d’une manière ou d’une autre par ce code OR, la carte n’a pas été créée avec:

map = new google.maps.Map(....)

avant d'essayer d'ajouter un nouvel écouteur de clic.

9
plexer

Je ne sais pas si cela peut poser problème, car nous ne voyons pas la partie de votre code où vous créez un lien vers la bibliothèque Google Maps, mais je viens de découvrir que la raison de cette erreur était en essayant d'inclure la bibliothèque "visualisations". Heureusement, je n'avais plus besoin de l'utiliser.

J'ai eu ceci:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry,visualization&sensor=true"></script>

et l'a changé en ceci:

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

Je ne reçois plus l'erreur e3 .

À propos, cette erreur pour moi n’était pas cohérente et je ne pouvais pas comprendre comment la reproduire. Je devais rester assis là et appuyer sur rafraîchir encore et encore jusqu'à ce que l'erreur se produise.

J'espère que ça aidera quelqu'un.

2
Adam

Cela se produit lors du chargement de vos données asynchrones. Vous pouvez éviter cela en incluant votre code document.ready dans la fonction ajaxStop.

$().ready(function() {
    $(document).ajaxStop(function () {
        /* your code here ?*/
    });
});
1
Hatzegopteryx

Dans mon cas, c’était que la variable de carte globale avait été écrasée dans l’initialiseur, mais je voulais utiliser cette variable globale dans une autre fonction, ce qui posait problème.

1
NoWomenNoCry

Dans mon cas, google.maps.event.addListener(marker, 'click', function() {, la variable de marqueur était indéfinie. Et d'où l'erreur. Pourrait être utile pour quelqu'un.

0
User-8017771

Oui, ensuite ... La variable de carte doit être déclarée à l'extérieur et avant son utilisation. En tant que Google Maps Listener ne peut pas le trouver.

0
Magnus Melwin

Quelque chose comme ça?

var lati,longt; //contains latitude and longitude

func newLatLOng(){
  get new value of latLong
  initMap();

}

var map = 0;
function initMap() {
    if (map ===0)
    {
     //load first time
            lati= 28.5072216;
            longt= 77.4971153;
            map = new google.maps.Map(document.getElementById('map'), {
                    center: {lat: lati, lng: longt},
                    zoom: 13
            });
    }else
    {
            var geolocation = { lat:lati, 
                            lng: longt };
            google.maps.event.trigger(map, 'resize');
            map.setCenter(geolocation);
    }
0
Thoughtful Monkey