我有一个正在开发的网站,它使用Google Maps API V3加载多个定位制作者。一切工作除了在IE7/8在我的循环遍历一个数组失败,因为以下错误:IE7/8 javascript“SCRIPT5007:无法获取媒体资源的价值”
SCRIPT5007: Unable to get value of the property '5': object is null or undefined
我已经通过在计算器上所有类似的问题看,并不能找到任何解决方案。
所以我试图从一个对象数组中访问数据(我也尝试了一个嵌套数组,但同样的错误发生)。我的数组如下。我也尝试删除html对象,以防造成问题,但没有改变 - IE7/8仍然无法获得对象值。
var sites = [
{title: "Hermitage Medical Clinic", latitude: 53.3593139774, longitude: -6.40494071541, enumerator: 1, html: "<div class=\"find_a_surgeon_info_inner\"><h4 style=\"margin: 0; padding: 0;\">Hermitage Medical Clinic</h4><p>Old Lucan Road, Dublin 20</p><p><a href=\"http://devel.pixelapes.com/iaps.ie/location/hermitage-medical-clinic/\">View hospital details</a></p></div>", iconTerm: "hospital" }
];
这是我的功能,这是试图访问数据:
function setMarkers(map, sites) {
for (var i = 0; i < sites.length; i++) {
// var sites = markers[i];
var icon = '<?php bloginfo("template_url"); ?>/images/map-icons/' + sites[i].iconTerm + '.png';
var siteLatLng = new google.maps.LatLng(sites[i].latitude, sites[i].longitude);
var marker = new google.maps.Marker({
position: siteLatLng,
map: map,
icon: icon,
title: sites[i].title,
zIndex: sites[i].enumerator,
html: sites[i].html
});
var contentString = "Some content";
google.maps.event.addListener(marker, "click", function() {
infowindow.setContent(this.html);
infowindow.open(map, this);
});
}
}
我也尝试下探回到刚才使用的情况下,有一个具体问题与iconTerm默认的地图标记对象,但IE7/8只是失败,试图获得下一个对象值。
下面是关于此发生的页面: http://devel.pixelapes.com/iaps.ie/surgeon/eamon-s-beausang/
奇怪的是,我还有一个地图实例,其中我不会设置与map.fitBounds界限。获取对象的值仍然失败,但在地图上分类负载(但很乱七八糟):http://devel.pixelapes.com/iaps.ie/find-a-hospital-or-clinic/
我曾试图消除单一外科医生页面上的fitBounds功能,但是映射仍然因为它在不加载部分“查找医院”地图。
有关如何解决此问题的任何想法?
谢谢莫尔博士!我完全没有发现,这让我发疯了!只有拖尾逗号的原因是因为我从PHP循环中生成了对象,并忘记了对该数组进行计数并在最后一个对象上删除了尾随逗号。 – alexleonard
可悲的是,它还没有完全解决我的IE7/8的困境,因为我仍然无法让标记出现 - 但这绝对是我修复的问题之一。 我应该发布一个关于标记不显示的新问题吗? – alexleonard
呵呵,我刚刚解决了标记消失的问题......一个通用的CSS img规则影响了它们的边距和填充......我是一个白痴(但随后IE的开发工具不会让你真的看看地图里面,所以我不明白发生了什么) – alexleonard