J'ai une liste de messages et un bouton "charger plus" pour charger plus de messages sur un défilement infini comme Twitter, etc.
Le fait est que chaque publication a des commentaires Facebook, mais je ne veux pas charger TOUS les commentaires de CHAQUE publication.
Donc, j'ai fait ceci dans jQuery:
function showFbComments(id) {
var commentBox = "<div class="fb-comments" data-href="http://www.tusecreto.com.ar/" + id + "" data-num-posts="20" data-width="100%"></div>";
if($("#fb_comentarios_" + id).hasClass("loaded")) {
$("#fb_comentarios_" + id).toggle();
} else {
$("#fb_comentarios_" + id).addClass("loaded").append(commentBox).toggle();
}
}
De cette façon, lorsque je clique sur "50 commentaires", la fonction showFbComments affichera mon DIV "fb_comentarios_id" et ajoutera le code Facebook HTML5.
Le problème est que les commentaires ne s'afficheront pas après le chargement de la page. Si je clique sur le lien avant que la page ne soit complètement chargée, le spectacle est parfait.
Je pense que ça doit être quelque chose à propos du JS de Facebook. Je veux dire tout ça...
<div id="fb-root"></div>
<script>(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/es_ES/all.js#xfbml=1&appId=152950781809";
fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));</script>
Existe-t-il un moyen de charger les commentaires de manière asynchrone ?
Réponses:
3 pour la réponse № 1Je pense avoir trouvé la réponse: https://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/
Je viens d'ajouter
FB.XFBML.parse(document.getElementById("#fb_comentarios_" + id));
après l'ajout et cela fonctionne maintenant. Est-ce correct ?