Клуб API Карт

Как подгрузить карту из внешнего файла на страницу?

martin72
28 марта 2011, 14:54
Такая задача:

есть несколько отдельных html-файлов с яндекс.картами, которые загружаются как отдельные окна при клике на ссылку "схема проезда" на основной странице.

Нужно уйти от открытия отдельных окон, т.е. подгружать эти отдельные html-файлы внутрь div на основной странице сайта. Возможно ли это, и как? Банальный $('#asd').load('файл-с-яндекс.картой.html'); ничего не дает. Похожих примеров на сайте API яндекс.карт найдено не было.

Спасибо.
10 комментариев
Подписаться на комментарии к посту
можно, но что-то не хочется эту архаичную конструкцию, хочется понять, почему через load не получается. Если просто скопировать весь файл с яндекс.картой прямо в div на основной странице, то карта видна.
 
хочется понять, почему через load не получается

Из документации по jQuery

 

jQuery uses the browser's .innerHTML property to parse the retrieved document and insert it into the current document. During this process, browsers often filter elements from the document such as , or  elements. As a result, the elements retrieved by .load() may not be exactly the same as if the document were retrieved directly by the browser.

 

 

Спасибо, да, читал, однако ни html ни title и head там не используется, но вот

Ну вы посмотрите, например с помощью firebug что в конце-концов вставляется и есть ли там эти скрипты

 

А вообще это не так решается

Есть одна карта и есть серверный скрипт отдающий в формате JSON или YMapsML,

то что нужно на ней показать.

Да, других решений много, но здесь нужно было именно так, т.к. файлов с yandex-картами много и сверстаны они вручную, и нужно было быстро поменять браузерный popup на всплывающий div.

Если вам нужно сделать быстро и без изменения исходных html-файлов, то лучше воспользоваться iframe. iframe отнюдь не архаичный, например, визивуги используют именно его (тот что на я.ру не исключение).

Или же сделать с загрузкой javascript/json/ymapsml как вам посоветовали Лунный и Андрей. Однако, это потрубует рефакторинга всех страниц. Возможно этот рефакторинг можно сделать как-то автоматически?

Спасибо, пока обошлись iframe.

А зачем грузить html  со

Увы, не проще, т.к. для этого придется переверстать все html-файлы с картами, а хотелось обойтись без этого.