2011-05-22 2 views
2

Je rencontre un problème lors de l'appel d'une fonction javascript dans un InfoWindow Google Maps. Le code correspondant est le suivant:Appeler une fonction JavaScript dans un InfoWindow (Google Maps)

<script type="text/javascript"> 
<!-- 
/* … unnecessary code */ 

function closeTo(url_slug) { 
    parent.url_slug = url_slug; 
    parent.$.fancybox.close(); 
} 

var contentString = '<a href="javascript:closeTo(\'foo\');">close</a>'; 

var callout = new google.maps.InfoWindow({ 
    content:contentString 
}); 

//--> 
</script> 

L'exemple ci-dessus donne une carte vierge. Cependant, si je change la chaîne de contenu à ceci:

var contentString = '<a href="#">close</a>'; 

Cela fonctionne très bien. En outre, j'ai appelé la fonction à partir d'un lien sur la page (pas une InfoWindow) et cela fonctionne aussi bien. L'idée générale est de répondre à un clic dans une InfoWindow, de fermer la fancybox et de rediriger vers l'emplacement fourni. Voici donc ma question. Comment appeler une fonction dans une InfoWindow?

+0

Carte vierge? En charge ou après avoir cliqué sur 'fermer'? –

+0

Quelque chose dans la console JavaScript de votre navigateur lorsque ce problème se pose? Pouvez-vous pointer vers un lien où nous pouvons voir ce comportement? Si tout le reste échoue, peut-être essayer de mettre le JavaScript dans un onclick (et suivre l'appel avec closeTo() avec '; return false;') et voir si cela fait l'affaire? – Trott

Répondre

0

Il y a nothing inherently wrong avec l'appel d'une fonction javascript d'une infoWindow. Je vous suggère de vérifier le journal des erreurs JavaScript et d'essayer de suivre ce qui se passe une fois closeTo s'appelle.

+0

Merci pour le conseil. Je passais les informations via PHP, échoué à addslashes à la chaîne javascript. – sdover102

+0

@ sdover102 Pas de problème :) Je suis content que vous l'ayez résolu. – RedBlueThing