Прослушивание события domready для класса google.maps.InfoWindow

Итак, я пытаюсь добавить карту google на свою веб-страницу. Я хочу добавить форму в всплывающий пузырь, когда вы нажимаете на маркер на карте.

В документации по API говорится, что domready

"запускается, когда содержимое содержимого InfoWindow подключается к DOM. Возможно, вы захотите отслеживать это событие, если динамически создаете содержимое информационного окна."

Как я могу прослушать это событие?

Это documentation.

Ответ 1

Я сам решил подобную проблему. Чтобы прослушать событие domready, используйте следующий синтаксис:

infoWindow = new google.maps.InfoWindow();
google.maps.event.addListener(infoWindow, 'domready', function() {
      // whatever you want to do once the DOM is ready
});

Ответ 2

Событие google.maps.event.addListener() ожидает создания HTML-структуры infowindow "domready" и до того, как будут применены определенные стили, заданные в infowindow.

Я работал с этим примером:

google.maps.event.addListener(infowindow, 'domready', function() {

   // Reference to the DIV which receives the contents of the infowindow using jQuery
   var iwOuter = $('.gm-style-iw');
   var iwBackground = iwOuter.prev();

   // Remove the background shadow DIV
   iwBackground.children(':nth-child(2)').css({'display' : 'none'});

   // Remove the white background DIV
   iwBackground.children(':nth-child(4)').css({'display' : 'none'});

});

Тогда

.gm-style-iw {
   width: 350px !important;
   top: 0 !important;
   left: 0 !important;
   background-color: #fff;
   box-shadow: 0 1px 6px rgba(178, 178, 178, 0.6);
   border: 1px solid rgba(72, 181, 233, 0.6);
   border-radius: 2px 2px 0 0;
}

Результат: введите описание изображения здесь

Ссылка: http://en.marnoto.com/2014/09/5-formas-de-personalizar-infowindow.html

Спасибо

Ответ 3

var contentString = 'your form here';

var infowindow = new google.maps.InfoWindow({
    content: contentString
});

var marker = new google.maps.Marker({
    position: myLatlng,
    map: map,
    title:"My Form"
});

google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
});