Google Maps API 无法在移动浏览器上运行[关闭]
2020-03-22
163
我在我的网站上使用 Google Maps API 自定义标记,它在桌面浏览器中运行良好,但在移动浏览器中却无法显示。我的控制台中出现错误:
TypeError:无法读取未定义的属性“length”
。
我使用 ajax 获取数据。这是 javascript:
var myLatlng = new google.maps.LatLng(-0.7893, 113.9213);
var mapOptions = {
zoom: 4,
center: myLatlng,
scrollwheel: false,
mapTypeControl: false,
styles: []
};
var locations = response;
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
如能提供任何帮助,我们将不胜感激。
2个回答
检查“locations.length”是否存在,如果不存在,它将返回 null,并且长度值会出错。您可以这样做 -
if (!locations ==0){
for (var i = 0; i < locations.length; i++)
....
您可以找到更多答案 Uncaught TypeError: Cannot read property 'length' of null
AlwaysConfused
2020-03-22
通过向 #map 添加固定高度(之前为 100%)解决了该问题。
firewalls
2020-03-22