Стилизация информационного окна довольно проста с использованием ванильного JavaScript. Я использовал некоторую информацию из этой темы, когда писал это. Я также принял во внимание возможные проблемы с более ранними версиями т.е. (хотя я не проверял это с ними).
var infowindow = new google.maps.InfoWindow({
content: '<div id="gm_content">'+contentString+'</div>'
});
google.maps.event.addListener(infowindow,'domready',function(){
var el = document.getElementById('gm_content').parentNode.parentNode.parentNode;
el.firstChild.setAttribute('class','closeInfoWindow');
el.firstChild.setAttribute('title','Close Info Window');
el = (el.previousElementSibling)?el.previousElementSibling:el.previousSibling;
el.setAttribute('class','infoWindowContainer');
for(var i=0; i<11; i++){
el = (el.previousElementSibling)?el.previousElementSibling:el.previousSibling;
el.style.display = 'none';
}
});
Код создает информационное окно как обычно (нет необходимости в плагинах, пользовательских оверлеях или огромном коде), используя div с идентификатором для хранения содержимого. Это дает ловушку в системе, которую мы можем использовать, чтобы получить правильные элементы для манипулирования простой внешней таблицей стилей.
Есть пара дополнительных частей (которые не являются строго необходимыми), которые обрабатывают такие вещи, как добавление крючка в div с изображением закрытого информационного окна.
Последний цикл скрывает все части стрелки-указателя. Я сам нуждался в этом, так как хотел, чтобы в информационном окне была прозрачность, а стрелка мешала. Конечно, с помощью ловушки изменение кода для замены изображения стрелки на png по вашему выбору также должно быть довольно простым.
Если вы хотите изменить его на jquery (понятия не имею, почему), то это должно быть довольно просто.
Я обычно не являюсь разработчиком javascript, поэтому любые мысли, комментарии, критика приветствуются:)