Это меня действительно беспокоит - очень много .
Пройдя через сгенерированный на Google Maps v3 код на стороне клиента в firebug, я готов проехать по улице и поделиться своим мнением с некоторыми из этих инженеров ... arrrgh: P
Класс infowWindow производит HTML, который лично я считаю просто чокнутым. может быть, кто-нибудь может помочь мне разобраться в этом.
HTML-структура infowWindow выглядит так:
#map_canvas > div > div > div > div > div // 5 levels of elements,
no big deal here, ok...
> div // top left corner
div // top right corner
div // bottom left corner
div // bottom right corner
// now comes fun stuff for the speech bubble arrow:
div
div
div
div
div
div
div
div
div
div
// the 10 divs above are stacked diagonally with odd sizes to make this arrow.
i'm sorry but WHY?!? is it done like that? I suppose they wanted the user to be
able to grab the map even right next to the arrow. Think about this: do users
really need to be able to not grab the arrow? if grabbing the arrow causes map pan,
as is the case for the shadow images, would that really be a problem?
div // bottom middle for image background border or something
div // top middle
div // middle
div // bottom middle, again
div // entire block of the infoWindow, probably the container
> img // close box
div // center block with the contents of the infoWindow
div // text content container
Ничего себе!
обратите внимание, что настоящей семантической структуры нет, и - черт возьми, смею у меня такая предположение - нигде нет имен классов, ничего. Я подумал, может быть, у них есть своего рода коробку из 9 срезов, идущую дальше и отдельно производим стрелку; Я имею в виду, спрайт изображения в iw3.png здесь точно не будет проблемой.
Я очень надеюсь, что кто-то, кто имеет влияние на этот api, столкнется с этим и надеюсь, Google в конечном итоге найдет способ решить эту проблему, чтобы пользовательский Визуальные элементы infoWindow так же просты, как и маркеры.
Спасибо за настройку! счастливого комментирования.
тем временем я воспользуюсь хаком, чтобы добраться до этих сумасшедших div и заставить их выполнять мои приказы.
ранее я прокомментировал какой-то другой пост, и я думаю, не должно быть слишком много, чтобы попросить метод в API, который позволяет использовать настраиваемый пользовательский интерфейс, не прибегая к почти дублированию всего объекта окна, как это необходимо в настоящее время (см. классы расширений Google v3).
google.maps.infoWindow.setStyle({
'topleft' : {
'background' : 'url(images/windowsprite.png) 0 0 no-repeat',
'width' : '10px',
'height' : '10px'
},
'topRight' : {
...etc...
}
...etc...
})