我有点困惑。我正在尝试将 Google Maps (api v.3) infoWindow 的内容加载为节点。如果我这样做并且内容很大,则不会显示预期的垂直滚动条并且内容会溢出信息窗口,这对用户来说非常混乱。
但是,如果我得到完全相同的节点并将其 html 字符串表示形式传递给它使用垂直滚动条呈现的 InfoWindow。
我创建了一个 jsfiddle 来说明它:http: //jsfiddle.net/vEBUv/5/
这是预期的行为吗?
感谢您的任何建议
ps:我需要将内容作为节点传递,因为我想保持对 DOM 元素的引用
jsFiddle 中的代码:
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var mapOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
var mapNode = new google.maps.Map(document.getElementById('map_canvas_node'), mapOptions);
var contentNode = $('#infoWindowContent')[0];
var contentString = $('#infoWindowContent').parent().html();
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var infowindowNode = new google.maps.InfoWindow({
content: contentNode
});
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: 'Test Content as String'
});
var markerNode = new google.maps.Marker({
position: myLatlng,
map: mapNode,
title: 'Test Content as Node'
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
google.maps.event.addListener(markerNode, 'click', function() {
infowindowNode.open(mapNode,markerNode);
});