Клуб API Карт

Контент баллуна в ie6

e.bea
9 ноября 2009, 14:17

День добрый!


Пытаюсь динамически менять контент баллуна, добавлять html с текстом и картинками.


В опере и мозилле все работает, а в ие6.


Не удаляются старые изображения из баллуна

вот метка


первый клик


второй клик


третий клик


Притом если при создании метки


пишу marker.description = 'html картинки и тп';, то все ок


если вешаю на


YMaps.Events.observe(marker, marker.Events.BalloonOpen, function () {

или 

YMaps.Events.observe(marker, marker.Events.Click, function () {



marker.setBalloonContent('html картинки и тп');

 , то происходит это видение.


Делал that.map.getBalloon().update(); перед открытием баллуна и после ни чего не помогает.


Может есть решение, как это побороть ?:)



Вот простенький пример кода




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Примеры. События. Прослушивание событий.</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <script src="http://api-maps.yandex.ru/1.1/index.xml?key=adsas" type="text/javascript"></script>
<script type="text/javascript">
window.onload = function () {
var map = new YMaps.Map(document.getElementById("YMapsID"));
map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);

var marker = new YMaps.Placemark(map.getCenter(), {draggable: false});

var response = "asd asd <img src='http://sstatic.net/so/img/logo.png' /> asdlflas klaksl";

//marker.description = response;



map.addOverlay(marker);

YMaps.Events.observe(marker, marker.Events.Click, function () {


//marker.description = response;

marker.setBalloonContent(response);

});

};
</script>
</head>

<body>
<div id="YMapsID" style="width:800px;height:600px;"></div>
</body>

</html>



3 комментария
Подписаться на комментарии к посту

помогла такая запись :)


    marker.setBalloonContent('' + html + '');

Это ошибка на нашей стороне. Спасибо. Будем исправлять.

Задавайте содержимое в поле description и потом вызывайте метод update().
var placemark = new YMaps.Placemark(map.getCenter());
map.addOverlay(placemark);

YMaps.Events.observe(placemark, placemark.Events.BalloonOpen, function (pl) {
    pl.description = 'http://img.yandex.net/i/logo95x37x8.png" alt="Яндекс"/>';
    pl.update();
});

Ну или нужно оборачивать картинку в контейнер, как Вы сами догадались.
Спасибо :)