未捕获的TypeError:对象#<infobox>没有方法'open'</infobox>

时间:2013-01-22 04:03:21

标签: javascript google-maps

我一直有这个问题。我一直收到这个错误:

  

未捕获的TypeError:对象#没有方法'open'

这篇文章中的解决方案也没有任何帮助。 Uncaught TypeError: Object [object Object] has no method 'open'

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=xxxxxx&sensor=false&callback=initializeMap"></script>

<script type="text/javascript" src="/js/infobox_packed.js"></script>

<script type="text/javascript">

var marker1;

function initializeMap() {
    var latlng = new google.maps.LatLng(22.3113315, 114.188804);
    var myMapOptions = {
        zoom: 11,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById("map_canvas"), myMapOptions);

    marker1 = new google.maps.Marker({
        map: map,
        draggable: false,
        position: new google.maps.LatLng(22.283378, 114.183826),
        visible: true
    });

    var boxText = document.createElement("div");
    boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: white; padding: 5px;";
    boxText.innerHTML = "Need help on moving home.<br>Wan Chai<br>Hong Kong";

    var myOptions = {
        content: boxText,
        disableAutoPan: false,
        maxWidth: 0,
        pixelOffset: new google.maps.Size(-140, 0),
        zIndex: null,
        boxStyle: { 
            background: "url('tipbox.gif') no-repeat",
            opacity: 0.75,
            width: "280px"
        },
        closeBoxMargin: "10px 2px 2px 2px",
        closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif",
        infoBoxClearance: new google.maps.Size(1, 1),
        isHidden: false,
        pane: "floatPane",
        enableEventPropagation: false
    };

    google.maps.event.addListener(marker1, "click", function (e) {
        ib.open(map, this);
    });

    var ib = new InfoBox(myOptions);
    ib.open(map, marker1);
}
</script>

如果有人知道有什么想法,请咨询。提前致谢

1 个答案:

答案 0 :(得分:-1)

这很简单。你从一些不支持它的对象中调用'open()'。

您的代码中只有两个地方称为“open()”,而在第一个地方,您使用未初始化的变量ib。

话虽如此,如果您使用Chrome的调试工具,这应该很容易追踪。