Проблема с кроссбраузерностью
Приведенный код работает только в 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> Уже всю голову поломал, в чем причина - не могу понять. Помогите пожалуйста разобраться. |
При задании ширины и высоты допишите единицы измерения, например, "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 Яндекс.Карт вопросы лучше задавать в Клуб разработчиков. Там быстрее ответят. |
Спасибо!!!
|
Часовой пояс GMT +3, время: 06:04. |