Здравствуйте.
Столкнулся с необходимостью добавить на сайт Яндекс-карту, причем открываться она должна во всплывающем окне.
Для этого создал следующий код:
<a href="#" onclick="document.getElem
entById('wind').style.dis play='block'; return false;" title="Всплывающее окно">Открыть карту</a> <div id="wind">
<?php
$city = $_GET["city"];
$street = $_GET["str"];
$house = $_GET["house"];
$zapros = $city.',+'.$street.'+улица,+дом+'.$house;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm
l1/DTD/xhtml1-transitiona ">l.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=Тут_у_ " type="text/javascript"></script>меня_ключ_прописан&module s=traffic
<script language="JavaScript" type="text/javascript">
var map;
// Создание обработчика для события window.onLoad
YMaps.jQuery(function () {
// Создание экземпляра карты и его привязка к созданному контейнеру
map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
// Установка для карты ее центра и масштаба
map.setCenter(new YMaps.GeoPoint(43.998779,56.316537), 11);
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.TypeControl());
map.addControl(new YMaps.ToolBar());
// создание элемента управления "Пробки"
var traffic = new YMaps.Traffic.Control();
// добавление элемента управления "Пробки" на карту
map.addControl(traffic);
// включение показа пробок
traffic.show();
// Создание и добавление YMapsML-документа на карту
var ml = new YMaps.YMapsML('http://geocode-maps.yande
x.ru/1.x/?geocode=Саратов );,+Танкистов+улица,+дом+62 &key=Тут_у_меня_ключ_проп исан' // Обработчик успешной загрузки YMapsML
YMaps.Events.observe(ml, ml.Events.Load, function (ml, error) {
var geoResult = ml.get(0).get(0);
geoResult.description = geoResult.metaDataProperty.GeocoderMetaData.text;
map.addOverlay(geoResult);
map.setBounds(geoResult.getBounds());
});
// Обработчик неудачной загрузки YMapsML
YMaps.Events.observe(ml, ml.Events.Fault, function (ml, error) {
alert('Ошибка: ' + error);
});
});
</script>
</head>
<body>
<div id="YMapsID" style="width:600px; height:400px;"></div>
</body>
</html>
<button type="button" value="закрыть" onclick="document.getElem
entById('wind').style.dis play='none'; return false;"> закрыть</button>
В итоге при открытии этой карты отображается все управление, но не отображается сам слой с картой.
Убираю из этого кода причуду с открыванием во всплывающем окне - все работает нормально, все нормально отображается. Собственно код для карты прежде чем вставить сюда попробовал на отдельной странице.
Сам работой с яндекс-картами начал заниматься только вчера, поэтому полный ноль в них.
Гуру, подскажите пожалуйста решение проблемы. Как заставить карту открываться во всплывающем окне?