Ширина Google InfoWindow перезаписывается даже при правильной настройке

Я использую Google Maps API, и у меня возникли проблемы сInfoWindow.

Вот резюме:

Я загружаю содержимое InfoWindow, когда пользователь нажимает на маркерСодержимое является частичным представлением, загруженным благодаря вызову AjaxВ обратном вызове .done я вызываю асинхронный метод, который вставляет данные в содержимое InfoWindow. Мне нужно сделать это, потому что я хочу, чтобы основное содержимое InfoWindow отображалось немедленно, тогда как эта «бонусная» информация могла отображаться через несколько десятых секунды.

Это прекрасно работает; но у меня справа от окна InfoWindow есть белая полоса, которую я не могу удалить (см. рисунок ниже)

Тем не менее, загружаемый контент включен в<div> с фиксированнымwidth :

<div id="div-main-infoWindow">
    <!-- All my content -->
</div>

И в моем CSS я написал:

#div-main-infoWindow {
    width:342px !important;
}


Загрузка InfoWindow с более подробной информацией выглядит следующим образом:

$.ajax({  
            url         :    "/my-url",
            async       :    false,
            contentType :    "application/json; charset=utf-8",
            dataType    :    "json",
            type        :    "POST",
            data        :    JSON.stringify(myModel)
        }).done(function(response) {

             MarkerContent = response.Content; //The HTML content to display

             MyAsyncMethod().then(function(response) {
                 //do some formatting with response
                 return result;  //result is just a small HTML string 
             }).done(function(result1, result2) {
                 //do some formatting with result1 and result2
                 $("#myNode").html(/*formatted result*/);
             })

            //info is a global variable defined as new google.maps.InfoWindow()
            info.setOptions({
                content: MarkerContent,
                maxWidth: 342 //To be sure 
            });

            info.open(map, marker);
        });
});

Содержание в порядке, проблема в этой белой полосе.

Глядя на консоль браузера (я воспроизвел ее во ВСЕХ браузерах), я вижу это:

Как вы можете видеть, мой<div> содержит все мои данные, загруженные из моего вызова ajax, в порядке с хорошим размером (зеленый прямоугольник, соответствующий серой зоне на скриншоте), НО вышеупомянутые div (из самого Google API, в красные прямоугольники) имеют больший размер, от в чем проблема.

Единственный способ, который я нашел, - запустить этот скрипт jQuery, модифицирующий внутреннюю структуру InfoWindow:

$(".gm-style-iw").next().remove();
$(".gm-style-iw").prev().children().last().width(342);
$(".gm-style-iw").prev().children(":nth-child(2)").width(342);

$(".gm-style-iw").width(342);
$(".gm-style-iw").children().first().css("overflow", "hidden");
$(".gm-style-iw").children().first().children().first().css("overflow", "hidden");
$(".gm-style-iw").parent().width(342);

Заметка : gm-style-iw это имя класса, данное Google для div, содержащего все содержимое InfoWindow, которое показано на снимке экрана выше. Я также добавляю это правило в мой CSS:

.gm-style-iw {
    width: 342px !important; //also tried with 100% !important, not better
} 

Он работает в консоли, однако не имеет никакого эффекта при написании в самом коде, в.done обратный вызов или вdomready Событие Google Maps ...
Однако в этом позднем случае, если я инкапсулирую вышеупомянутый скрипт jQuery вsetTimeout(), оно работает !! Я прокомментировал асинхронный метод, так что виноват не этот, но кажетсяdomready выполняется, тогда как 100% InfoWindow все еще не отображается - чтовопреки доку.

Я также пытался переместить мойinfo.setOptions вне.done перезвонить и поставить его после, никакого эффекта.

Итак, как я могу отобразить «нормальное» информационное окно без этой белой полосы справа?
Я не хочу реализовыватьInfoBubble или другую пользовательскую библиотеку InfoWindow. Это личный проект, и я хочу понять, почему и где проблема. И конечно, найти решение.

Спасибо за помощь !

Ответы на вопрос(1)

Ваш ответ на вопрос