IE7/8 javascript“;SCRIPT5007:无法获取属性“的值”;

IE7/8 javascript“;SCRIPT5007:无法获取属性“的值”;,javascript,google-maps-api-3,internet-explorer-8,internet-explorer-7,Javascript,Google Maps Api 3,Internet Explorer 8,Internet Explorer 7,我有一个正在开发的网站,它使用Google Maps API V3加载多个位置生成器。除了在IE7/8中,由于以下错误,我在阵列中的循环失败外,其他一切都正常工作: SCRIPT5007: Unable to get value of the property '5': object is null or undefined 我查看了所有关于StackOverflow的类似问题,但找不到任何解决方案 因此,我尝试从对象数组访问数据(我也尝试了嵌套数组,但出现了相同的错误)。我的数组如下。我还尝

我有一个正在开发的网站,它使用Google Maps API V3加载多个位置生成器。除了在IE7/8中,由于以下错误,我在阵列中的循环失败外,其他一切都正常工作:

SCRIPT5007: Unable to get value of the property '5': object is null or undefined
我查看了所有关于StackOverflow的类似问题,但找不到任何解决方案

因此,我尝试从对象数组访问数据(我也尝试了嵌套数组,但出现了相同的错误)。我的数组如下。我还尝试删除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" }
        ];
var站点=[
{title:“Hermitage Medical Clinic”,纬度:53.3593139774,经度:-6.40494071541,统计员:1,html:“Hermitage Medical Clinic都柏林老路坎路20号”

,国际互联网:“医院”} ];
这是我尝试访问数据的函数:

        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);
                });
            }
        }
功能设置标记(地图、站点){
对于(变量i=0;i
我也尝试过退回到只使用默认的映射标记,以防iconTerm对象出现特定问题,但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" }
        ];
以下是发生这种情况的页面:

奇怪的是,我有另一个map实例,我没有用map.fitbunds设置边界。无法获取对象值的情况仍然会发生,但贴图会加载(但非常混乱):

我已经尝试删除单一外科医生页面上的fitBounds功能,但地图仍然没有像“查找医院”地图上那样部分加载


有什么办法吗?

站点
latlngs
的最后几项之后有尾随逗号,请删除它们,即不喜欢数组/对象中尾随逗号。

我想你的问题可能是IE不喜欢一个(或多个)为
站点
数组的成员选择的属性名称的名称。我建议将您的第一个代码部分更改为:

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"
}];
var站点=[{
“名称”:“隐士医疗诊所”,
“纬度”:53.3593139774,
“经度”:-6.40494071541,
“统计员”:1,
“html”:“埃尔米塔奇医疗诊所都柏林老路坎路20号”,
“国际互联网”:“医院”
}];

现在我回顾一下您的代码,您实际上是正确的,但Molle博士的回答定义了实际的缺陷。只是后面的逗号引起了这个问题,但是将属性名用引号括起来并没有任何区别。谢谢Molle博士!我完全没有发现这一点,这让我发疯!之所以有尾随逗号,唯一的原因是因为我从PHP循环生成对象时,忘记了计算数组并在最后一个对象上删除尾随逗号。遗憾的是,它并没有完全解决我的IE7/8难题,因为我仍然无法显示标记-但这肯定是我解决问题的第一步!我应该发布一个关于标记不显示的新问题吗?嘿,我刚刚解决了标记消失的问题。。。一个通用的CSS img规则通过边距和填充来影响他们。。。我是个白痴(但是IE的开发工具不允许你查看地图内部,所以我看不到发生了什么)@Dr.Molle你在说什么?我没有看到任何尾随逗号。此外,IE在JSON对象中要求尾随逗号,所以我觉得你的答案很奇怪。我们讨论的是IE7+IE8,2:有两个链接页面(您可能会假设它们在10个月前没有响应服务器错误,但包含带有尾随逗号的代码)