Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.03.2010, 13:56
Новичок на форуме
Отправить личное сообщение для Стас Посмотреть профиль Найти все сообщения от Стас
 
Регистрация: 04.03.2010
Сообщений: 2

Проблема с кроссбраузерностью
Приведенный код работает только в IE:

<!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">
<table><tr><td><div id="YMapsID"></div></td></tr></table>
<script src="http://api-maps.yandex.ru/1.1/index.xml?key=AFkiiksBAAAAIznEFQIAVM19HKCnRqtCI85M cVs-FTzGHb0AAAAAAAAAAAAvqf3H1UCTxAgkMVWWwn5O1w0_kQ=="
type="text/javascript"></script>
<script type="text/javascript">
var mapblock=document.getElementById("YMapsID");
mapp = new YMaps.Map(mapblock);
value = 'Москва, Петровка, 38';
var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: mapp.getBounds()});
YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
if (this.length()) {
alert (value);
geoResult = this.get(0);
mapp.addOverlay(geoResult);
mapp.setBounds(geoResult.getBounds());
mapblock.style.height=525;
mapblock.style.width=700;
mapblock.style.display='block';
}
});
</script>

Уже всю голову поломал, в чем причина - не могу понять.
Помогите пожалуйста разобраться.
Ответить с цитированием
  #2 (permalink)  
Старый 05.03.2010, 11:03
Новичок на форуме
Отправить личное сообщение для hevil Посмотреть профиль Найти все сообщения от hevil
 
Регистрация: 05.03.2010
Сообщений: 1

При задании ширины и высоты допишите единицы измерения, например, "px". А также вызов метода setBounds() необходимо вынести после задания размеров контейнера карты, иначе получим "серую карту".
mapblock.style.height = "525px";
mapblock.style.width = "700px";
mapblock.style.display = "block";
mapp.setBounds(geoResult.getBounds());


Я бы советовал создавать карту после загрузки документа и использовать встроенный в API фреймворк jQuery:
YMaps.jQuery(function () {
    var mapblock = YMaps.jQuery("#YMapsID"),
        mapp = new YMaps.Map(mapblock[0]);

    var value = 'Москва, Петровка, 38',
        geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: mapp.getBounds()});

    YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
        if (this.length()) {
            var geoResult = this.get(0);
            mapp.addOverlay(geoResult);

            mapblock.css({
                width : 525,
                height : 700,
                display : "block"
            });

            mapp.setBounds(geoResult.getBounds());
        }
    });
});


По API Яндекс.Карт вопросы лучше задавать в Клуб разработчиков. Там быстрее ответят.
Ответить с цитированием
  #3 (permalink)  
Старый 06.03.2010, 02:36
Новичок на форуме
Отправить личное сообщение для Стас Посмотреть профиль Найти все сообщения от Стас
 
Регистрация: 04.03.2010
Сообщений: 2

Спасибо!!!
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с jQuery. Beck jQuery 2 26.08.2009 19:08
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47
проблема с обработкой DIV nerik AJAX и COMET 2 22.08.2008 17:40