Проблема с кроссбраузерностью
Приведенный код работает только в 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, время: 08:02. |