Клуб API Карт

Несколько ключей API для карт

adanenkov
4 декабря 2011, 17:21

Есть сайт и у него на сегодня 13 доменных имен.

Как вставить в скрипт карт яндекса больше 5'ти ключей, не прибегаю к программированию на языках сервера (asp, php)?

15 комментариев
Подписаться на комментарии к посту

На том же яваскрипте делать проверку текущего урла, и в зависимости от домена выводить один из кодов карт. всего получается 3 варианта для 13 доменов. Ну это один из возможных вариантов)))

пробовал - не получается. единственное объяснение нашел что скрипт финальный уже с ключем слишком поздно выполняется

   

 

вот так пробовал и не получается. т.е. карта непоявляется а просто белый экран

А если не генерить яваскрипт... Т.е. загнать готовый код в какую то переменную, и при совпадении домена, просто выводить это все в определенный див. Или поиграться с display. Правда не знаю сработает нет, надо пробовать.

Либо так же после проверки домена подгружать в див файл со скриптом нужной карты, через ajax jquery например.

Вот так попробуйте:

');

А дальше как обычно

так порбовал.

насколько я понял при таком способе ключь слишком поздно отсылается и карта не загружается

вообще никак он так не может "слишком поздно" отсылаться.

должен в тот же месте где и document.write

факт остается фактом. вместо карты показывает белый квадрат (как будто ее не грузит)

Дайте ссылку на страницу.

Правильный ответ - не использовать 13 доменных имен.

В любом случае главное зеркало ОДНО

с чего вы взяли. все 13 используются. в разных странах, к примеру, разные домены любят

значит совсем не сложно и на серверной стороне решать какой ключик надо добавить к вызову АПИ.

по ТЗ нельзя на серверной стороне((

1. сформировать javascript-хэш в котором

ключами будут ваши хосты, а их значениями ключи.

var keys = {

"www.yandex.ru" : "_ключ_для_yandex.ru_",

...

}

2. получить текущий хост host = window.location.host

3. получить скрипт АПИ с нужным ключом (например, через jQuery.getScript

$.getScript('http://api-maps.yandex.ru/1.1/?' + $.param({

    key : keys[host],

    loadByRequire: 1

}, function() {

   YMaps.load(mapInit);

});