3

私はしばらくの間この問題を抱えていました。このエラーが発生し続けます:

キャッチされていない TypeError: オブジェクト # にはメソッド 'open' がありません

この投稿の解決策も実際には役に立ちません。キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にはメソッド '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>

どなたかご存知の方がいらっしゃいましたら、アドバイスをお願い致します。前もって感謝します

4

1 に答える 1

-1

これは簡単です。サポートしていないオブジェクトから「open()」を呼び出しています。

コード内で 'open()' を呼び出す場所は 2 つだけです。最初の場所では、初期化されていない変数 ib を使用します。

そうは言っても、Chrome のデバッグ ツールを使用すれば、これを追跡するのは非常に簡単です。

于 2013-01-22T23:49:01.177 に答える