Javascript 谷歌地图API:无法读取属性'__e3';未定义的

Javascript 谷歌地图API:无法读取属性'__e3';未定义的,javascript,google-maps-api-3,Javascript,Google Maps Api 3,这是我要添加的侦听器- 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.m

这是我要添加的侦听器-

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);
            }
        });
    });
但它正在控制台中生成此错误-

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

我试着搜索。但是没有解决方案。

仅用代码的一小部分很难判断,但听起来好像找不到“地图”

您的map变量不是全局变量,或者该代码可以以某种方式访问该变量,或者map不是通过以下方式创建的:

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

在尝试添加新的click listener之前。

将您的listener移动到初始值设定项函数。

异步加载数据时会发生这种情况。通过将document.ready代码包含到ajaxStop函数中,可以避免这种情况

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

我不知道这对你来说是否是一个问题,因为我们没有看到你的代码中链接到谷歌地图库的部分,但我刚刚发现我出现这个错误的原因是因为试图包含“可视化”库。幸运的是我不再需要使用它了

我有这个:

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

并改为:

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

我不再得到e3的错误

顺便说一下,这个错误对我来说是不一致的,我不知道如何复制它。我不得不坐在那里反复点击刷新,直到错误发生


我希望这对某人有帮助。

是的,其次。。。map变量必须在使用之前在外部声明。因为google maps侦听器找不到它。

在我的例子中,全局映射变量在初始值设定项中被覆盖,但我想在另一个函数中使用该全局变量,这导致了问题。

类似的情况

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);
    }

在我的例子中,
google.maps.event.addListener(标记,'click',function(){
标记变量未定义。因此出现错误。可能对某些人有用。

map
是全局性的。我用完整的代码更新了问题。请检查。您发现了什么吗?我有相同的问题这与问题有何关系?这应该作为注释而不是答案添加。有时用户的声誉会受到影响太低了,无法评论,所以他们只能添加一个答案