Для меня было неприемлемо жестко задавать ширину и высоту информационного окна или устанавливать white-space: nowrap
, решение maxWidth
мне не помогло, а все остальное либо не работало, либо работало иначе не подходит для моего варианта использования.
Мое решение состояло в том, чтобы установить содержимое, открыть окно, а затем при возникновении события domready
установить свойство CSS height
для содержимого на любую высоту, а затем заставить Google Maps изменить размер окна InfoWindow. соответственно.
infoWindow
- это объект InfoWindow, $infoWindowContents
- это объект Jquery с содержимым, которое я хочу поместить туда, map
- это мой объект Map. marker
- это маркер, по которому щелкнули.
infoWindow.setContent($infoWindowContents.get(0));
var listener = google.maps.event.addListener(infoWindow, 'domready', function() {
// Stop listening, otherwise the listeners stack up if the window is opened again
google.maps.event.removeListener(listener);
// Set the height on the container to however tall the browser is currently rendering it
$infoWindowContents.height($infoWindowContents.height());
// Force Google Maps to recalculate the InfoWindow height
infoWindow.setContent($infoWindowContents.get(0));
});
infoWindow.open(map, marker);
(Я отправил то же решение по аналогичному вопросу Как мне получить InfoWindow google-maps, чтобы изменить его размер, чтобы он соответствовал содержанию, которое находится внутри него? )