6

Ich möchte die Daten-href für das fbs Kommentare Plugin unten basierend auf einer Javascript-Variable dynamisch ändern. Ich führe eine Flash-SWF-Datei und übergebe den neuen Link für Data-href über eine JavaScript-Funktion in den HTML-Wrapper. Wenn ich das mache, möchte ich, dass das fb comments plugin auf den neuen daten-href-Link aktualisiert wird.Wie Facebook-Kommentare Plugin-URL dynamisch auf JavaScript Variable ändern?

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

Javascript-Funktion aufgerufen, um die Kommentare Plugin in den neuen Link vorbei:

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

Antwort

12

Dies wird die anfängliche Kommentarfeld laden, wird das Skript, wenn sie ausgeführt wird, die Kommentare div-Wrapper löschen und html5 Kommentare ersetzen Box mit neuer URL. JS SDK wird dann die neue Box analysieren.

JS SDK wird für diese Arbeit benötigt. siehe https://developers.facebook.com/docs/reference/javascript/

fix für aus dom Manipulation machen XFBML


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

Benutzer gelöst:

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

Der Code wurde hinzugefügt, aber wenn Script ausgeführt wird, wird das Kommentarfeld gelöscht, aber das Feld für neue Kommentare wird nicht angezeigt. Ich habe das JS SDK geladen. – Steven

+0

Es gibt einen Fehler beim Rendern von innerHTML, ich habe es oben in einer Lösung bearbeitet und hier http://anotherfeed.com/login.php getestet, es gibt 2 Links auf der Seite URL 1 und URL 2, sie werden geändert und gerendert das Kommentarfeld –

+1

Danke, ich hatte den Code bearbeitet, indem ich die Parser-Variable entfernt habe, und es hat funktioniert. Sieht so aus, als ob dein bearbeiteter Code auch funktionieren sollte. document.getElementById ('Kommentare'). innerHTML = '

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

2

fand ich die einfachste und effektivste Weg, um Ihre Facebook Kommentar-Box zu erkennen nieren die individuelle URL jeder Seite (besonders gut für E-Commerce-Sites).

Dieses Skript zu Ihrem Top-Header-Abschnitt Ihrer Website-Vorlage (es erzeugt de Daten-href Wert für Ihren Kommentar Box div:

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

Und dann auf Ihrem Kommentar Box div, für die die ID hinzuzufügen Wert auf der Javascript erzeugt.

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

Voilá ich so viel Zeit gewidmet diese Nuss zu knacken, ich musste es einfach teilen für Sie einige Zeit für bre sparen Ak! Prost!

Verwandte Themen