Могу ли я изменить/установить ключ API Google Maps динамически из JavaScript?

У меня возникла проблема с небольшим веб-приложением, которое я разрабатываю: мой HTML-источник будет интегрирован в исходный HTML-код на другом сайте. Я использую карту Google в своем коде, поэтому мне нужно передать ключ API для загрузки скрипта Google Maps в текущем домене.

Проблема: мой код будет интегрирован в два разных домена, для чего потребуются два разных API-ключа. У меня есть эти два ключа, и я могу определить правильный с помощью JavaScript (с помощью document.location.host), но как мне динамически загрузить скрипт с правильным ключом?

Для справки: ключ передается как параметр в URL загрузки скрипта:

<script src="http://maps.google.com/maps?file=api&v=2&key=abcdefg" type="text/javascript">
</script>

person Christian Studer    schedule 10.06.2009    source источник


Ответы (2)


Использовать

var script = document.createElement("script");
script.setAttribute("src",whatever);
document.getElementsByTagName("head")[0].appendChild(script);

Замените все на источник сценария, который вы хотите использовать

person Jonathan Fingland    schedule 10.06.2009
comment
Почти, за исключением того, что это должно быть document.getElementsByTagName(head)[0] вместо document.head - person Matthew Flaschen; 10.06.2009
comment
Отвечаю с айфона. Было немного трудно проверить. Спасибо - person Jonathan Fingland; 10.06.2009
comment
А, спасибо, это должно было быть более-менее очевидно. (И для селектора: Ну, для этого jQuery довольно удобен...) - person Christian Studer; 10.06.2009

Я только что написал в блоге возможное решение этой проблемы. Взгляните и дайте мне знать, что вы думаете. Это процессор контекста, который динамически загружает ключ на основе домена в запросе.

person user199356    schedule 30.10.2009