6

Voglio modificare dinamicamente il data-href per il plug-in di commenti fb qui sotto basato su una variabile javascript. Sto eseguendo un file swf flash e sto passando il nuovo link per data-href nel wrapper html tramite una funzione javascript. Quando lo faccio, voglio che il plugin per i commenti su fb si aggiorni al nuovo collegamento data-href.Come modificare dinamicamente i commenti di Facebook URL di plugin in base alla variabile javascript?

<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="www.example.com" data-num-posts="20" data-width="380"></div> 

Chiamato funzione javascript passando il nuovo collegamento per il plugin commenti:

function changeCommentsUrl(newUrl){ 
// should refresh fb comments plugin for the "newUrl" variable 
} 

risposta

12

Questo caricherà la sezione Richieste iniziali, lo script quando eseguito sarà chiaro l'involucro commenti div e sostituire commenti HTML5 scatola con nuovo URL. JS SDK analizzerà quindi la nuova casella.

JS SDK è richiesto per questo lavoro. fare riferimento a https://developers.facebook.com/docs/reference/javascript/

correzione per XFBML rendere dalla manipolazione dom


<div id="comments"> 
<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="www.example.com" data-num-posts="20" data-width="380"></div> 
</div> 
<script> 
function changeCommentsUrl(newUrl){ 
// should refresh fb comments plugin for the "newUrl" variable 
document.getElementById('comments').innerHTML=''; 
parser=document.getElementById('comments'); 
parser.innerHTML='<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="'+newUrl+'" data-num-posts="20" data-width="380"></div>'; 
FB.XFBML.parse(parser); 
} 
</script> 

utente risolto:

document.getElementById('comments').innerHTML='<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="'+link+'" data-num-posts="20" data-width="380"></div>'; 
FB.XFBML.parse(document.getElementById('comments')); 

+1

Aggiunto il codice ma quando viene eseguito lo script, cancella la casella dei commenti ma la nuova casella dei commenti non viene visualizzata. Ho caricato l'SDK JS. – Steven

+0

c'è un bug nel rendering da innerHTML, ho editato in una soluzione in alto e lo ho testato qui http://anotherfeed.com/login.php, ci sono 2 link nella pagina url 1 e url 2, cambieranno e renderanno la casella dei commenti. –

+1

Grazie, ho modificato il codice rimuovendo la variabile parser e ha funzionato. Sembra che anche il tuo codice modificato dovrebbe funzionare. document.getElementById ('comments'). innerHTML = '

'; \t FB.XFBML.parse (document.getElementById ('commenti')); – Steven

2

Ho trovato il modo più semplice ed efficace per rendere la vostra Casella di commenti di Facebook da ricodificare nizzare l'URL individuale di ciascuna pagina (particolarmente utile per i siti di e-commerce).

Aggiungere questo script per la vostra parte di intestazione superiore del tuo modello di sito web (che genera il valore de dati-href per il tuo commento Box div:

<script type="text/javascript" language="javascript">jQuery(“#FC”).attr(“data-href”, window.location.href.split(‘?’)[0]);</script> 

E poi sul div commento di sicurezza, aggiungere l'ID per il valore generato sul javascript:.

<div id="FC" class="fb-comments" data-href="" data-width="700" data-numposts="5" data-colorscheme="light"> 

voilà ho dedicato così tanto tempo per rompere questo dado, ho dovuto condividere per voi di risparmiare un po 'di tempo per bre ak! Cheers!

Problemi correlati