我一直有这个问题。我一直收到这个错误:
未捕获的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>
如果有人知道有什么想法,请咨询。提前致谢
答案 0 :(得分:-1)
这很简单。你从一些不支持它的对象中调用'open()'。
您的代码中只有两个地方称为“open()”,而在第一个地方,您使用未初始化的变量ib。
话虽如此,如果您使用Chrome的调试工具,这应该很容易追踪。