IE7 / 8 javascript" SCRIPT5007:无法获得该物业的价值"

时间:2012-05-03 11:29:55

标签: 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上的所有类似问题,找不到任何解决方案。

所以我试图从对象数组中访问数据(我也尝试过嵌套数组,但是会发生同样的错误)。我的阵列如下。我也尝试删除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功能,但地图仍然没有像“查找医院”​​地图那样部分加载。

关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:7)

siteslatlngs的最后一项之后有逗号逗号,删除它们,IE不喜欢数组/对象中的尾随逗号。

答案 1 :(得分:0)

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

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"
}];