2011-03-02 6 views
0

J'essaie d'utiliser ce code pour insérer le Facebook comme boîte pour ma page:Facebook Like-boîte dans une boîte de dialogue modale jQuery

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like-box href="http://www.facebook.com/pages/xxxxx/xxxxx" width="285" show_faces="true" stream="false" header="false"></fb:like-box> 

Et je suis en train de l'ajouter à un jQuery boîte de dialogue modale, donc je le fais comme ça:

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#facebook").dialog({ 
     autoOpen: true, 
     height: 350, 
     width: 350, 
     modal: true 

    }); 
    }); 
    </script> 

<div id="facebook" title="Like us"> 
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like-box href="http://www.facebook.com/pages/xxxxx/xxxxx" width="285" show_faces="true" stream="false" header="false"></fb:like-box> 
</div> 

Il ne s'affiche pas dans la boîte de dialogue, quelqu'un sait quel est le problème?

Merci,

+0

Cela fonctionne-t-il si vous le mettez en dehors de la boîte de dialogue? –

+0

J'ai créé test de violon si quelqu'un veut essayer: http://jsfiddle.net/AYE8A/ – user194076

+0

violon est assez inutile car vous avez besoin de la fbml xmlns –

Répondre

0

Pour vous aider à résoudre votre question, il peut être nécessaire de voir la page entière que vous voulez que ce script exécuté. Le fait de ne pas charger les interfaces jQuery et jQuery UI (dialogue faisant partie de jQuery UI) ou d'un autre code jQuery/Javascript ou CSS qui pose un problème peut être un problème.

+0

jQuery fonctionne. La boîte de dialogue est ouverte au chargement de la page .. l'interface fonctionne aussi car je peux voir le thème que j'ai choisi, c'est juste que la boîte ne fonctionne pas dans ce dialogue –

+0

Comme le dit @Fozzyuw, il est très difficile d'aider sans voir le code ici. –

1

Vous devez initialiser le script facebook en même temps le modal est affiché

$(document).ready(function() { 
    $("#myModal").on("show", function() { 
     (function(d, s, id) { 
      var js, fjs = d.getElementsByTagName(s)[0]; 
      if (d.getElementById(id)) return; 
      js = d.createElement(s); js.id = id; 
      js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; 
      fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 
    }); 
}); 

Chaque fois que vous rejetez et réafficher vous devez réinitialiser. Par exemple, si votre modal a des onglets ou pagination et que Facebook est utilisé sur les pages 1 et 2.

if(pageId == 1 || pageId == 2) { 
    FB.XFBML.parse(); 
+1

Bonjour, J'ai remarqué qu'une erreur se produit lorsque vous essayez d'appeler la méthode 'parse()' sur le FB: XFBML Obj. Pour éviter cela, attendez simplement que le fichier JS soit chargé avec jQuery load, comme ceci: '$ (' # facebook-jssdk '). Load (function() {FB.XFBML.parse();});' –

Questions connexes