2009-06-10 4 views
3

Je suis confronté à un problème avec une petite application web que je développe: Ma source HTML sera intégrée dans la source HTML sur un autre site. J'utilise une carte Google dans mon code, je dois donc passer une clé API pour charger le script Google Maps sur le domaine en cours.Puis-je modifier/définir dynamiquement la clé de l'API Google Maps à partir de JavaScript?

Le problème: Mon code sera intégré sur deux domaines différents, nécessitant deux clés API différentes. J'ai ces deux clés et je peux identifier la valide par JavaScript (avec l'aide de document.location.host), mais comment puis-je gérer dynamiquement le script avec la bonne clé?

Pour référence: La clé est passé comme paramètre dans l'URL de chargement de script:

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

Répondre

5

Utilisez

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

Remplacer tout avec la source de script que vous souhaitez utiliser

+1

Presque, sauf qu'il doit être document.getElementsByTagName ("head") [0] au lieu de document.head –

+0

Répondre à un iphone. C'était un peu difficile à vérifier. Merci –

+0

Ah, merci, cela aurait dû être plus ou moins évident. (Et pour le sélecteur: Eh bien, jQuery est un peu pratique pour ça ...) –

0

Je viens blogué a would-be solution to this problem. Jetez un coup d'oeil et laissez-moi savoir ce que vous pensez. C'est un processeur de contexte qui charge dynamiquement la clé en fonction du domaine dans la requête.

+1

Le lien ne fonctionne pas ... – MDT

Questions connexes