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