2010-09-02 7 views
0

J'ai une galerie de photos qui utilise la fenêtre modale pour afficher des photos. Au cours de l'initialisation des fenêtres modales, j'insère le reste des fonctionnalités de la photo (bouton de partage, commentaire, tags, etc.). Tout fonctionne bien sauf le bouton de partage facebook. De la documentation que vous devez inclure le code html suivant:Comment inclure un fichier javascript dans une fenêtre modale créée dynamiquement?

<a name="fb_share">share</a> 
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" 
type="text/javascript"></script> 

Il fonctionne parfaitement pour les pages statiques, mais pas avec les pages qui ont créé à la volée. Voici exemple de mon code javascript (en utilisant jQuery)

//Insert share button 
$.gallery.facebookLike.insertAfter($('#cboxContent #cboxLoadedContent')); 

//Insert script element after share button 
$('<script />', { 
    src : 'http://static.ak.fbcdn.net/connect.php/js/FB.Share', 
    type: 'text/javascript' 
}).insertAfter($.gallery.facebookLike); 

Comme bouton résultat inséré mais élément de script n'est pas initialisés, après inspection dans Firebug ce script apparaît dans l'onglet script chargé, mais pas présent sur l'onglet HTML. Cependant, si vous cliquez sur le lien de partage, il vous envoie à la page Facebook et lorsque vous cliquez sur le bouton RETOUR dans votre navigateur, le script est initialisé. Qu'est-ce que je fais de mal et que peut-on faire à ce sujet?

Répondre

1

Je ne fais que deviner ici, mais je crois que le script a une fonction qui s'exécute sur l'événement window onload. Étant donné que la fenêtre est déjà chargée, le script n'est pas en cours d'exécution.

Editer: Oui, il semble que la fonction FB.Share.stopScan est en cours de chargement de la fenêtre. Vous devriez essayer d'appeler manuellement cette fonction.

+0

tous les scripts généraux sont initialisés pendant l'événement onload, le script facebook n'est pas chargé pendant ce processus, il doit être déclenché pendant le chargement de l'image. Cependant, j'ai essayé de l'inclure avec d'autres scripts, mais cela n'a rien changé. – Nazariy

Questions connexes