/ / Les commentaires Facebook (html5) ne s'afficheront pas s'ils sont insérés dans le DOM après le chargement - jquery, facebook, html5, asynchronous, facebook-comments

Les commentaires Facebook (html5) ne montreront pas s'ils sont insérés dans le DOM une fois chargés - jquery, facebook, html5, asynchrone, facebook-comments

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 № 1

Je 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 ?