2010-07-22 17 views
7

Per offrirti un semplice caso di utilizzo: sul mio sito web, visualizzo i commenti pubblicati dagli utenti di Facebook. Per ogni commento visualizzo la foto degli utenti di Facebook utilizzando il tag fb: profile-pic e un pulsante fb like.I tag Facebook non vengono visualizzati quando generati dinamicamente con Jquery

Questa pagina viene visualizzata correttamente e tutto viene visualizzato correttamente. Ora, quando gli utenti vogliono leggere i commenti più vecchi, cliccano sul link "Altro"

Utilizzando Jquery, tiro i commenti più vecchi e in javascript compilo il contenuto aggiungendo i tag fb: profile-pic e fb: like

Ma questi tag non vengono visualizzati. Abbiamo bisogno di ricaricarlo o qualcosa del genere. Grazie per il vostro aiuto

+0

si dovrebbe ricaricare ... Suggerisco tramite la tecnologia AJAX, ... – Reigel

+0

come faccio che - come in questo momento ho costruire la mia intera stringa dire comment = "

I love icecream
" Quindi vorrei fare $ ("# myswipes"). Html (commento); Quindi come ricaricherò. – Gublooo

risposta

28

Prima verificare che la FBML viene inserito nel DOM con un ispettore. Se è così, tutto quello che devi fare è dire a Facebook di convertire i tag FBML in tag HTML in modo che il tuo browser possa renderizzarli. Con l'API Graph chiamate FB.XHTML.parse http://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse utilizzando l'SDK Javascript. Ecco un esempio dal mio codice:

$('#list').append('<fb:name uid="4"></fb:name>'); 
FB.XFBML.parse(document.getElementById('list')); 
+1

grazie grazie grazie - ti amo - hai salvato così tanto del mio tempo .......... questo è esattamente quello di cui avevo bisogno - grazie ancora – Gublooo

+0

grazie, mi ha davvero aiutato – srcastro

+0

E io, questa è una bella piccola soluzione! Stavo usando il pulsante Mi piace nella scheda jQuery caricata ajax e non riuscivo a ottenere ciò che ho provato fino a quando ho trovato questo. Grande voto da me! – Rich

-1

come faccio che - come in questo momento ho costruisco la mia intera stringa dire comment="<div>I love icecream<br/><fb:profile-pic uid='xxx'></fb:profile-pic></div>" Poi vorrei fare $("#myswipes").html(comment); Così come dovrei ricaricare.

è possibile utilizzare $.ajax(), dicono

$('a.moreComment').click(function(){ 
    $.ajax({ 
     url: 'some/url.php', 
     success : function(comment){ 
      $("#myswipes").html(comment); 
     } 
    }); 
}) 

some/url.php dovrebbe essere nel server che può correttamente il rendering e restituire questa linea, <div>I love icecream<br/><fb:profile-picuid='xxx'></fb:profile-pic></div>

+0

Che differenza fa rendere la stessa linea lato server vs lato client. Ho appena provato il tuo approccio non funziona – Gublooo

+0

se puoi visualizzare 'some/url.php' nel browser senza problemi, allora dovrebbe funzionare ... – Reigel

+0

se restituisco qualsiasi altra stringa - che viene visualizzata correttamente - ma quando torno una stringa di tag fb come Gublooo

Problemi correlati