| 

.NET C# Java Javascript Exception

2
Moin allerseits.

Genau genommen geht es in meinem Problem nicht um AJAX, sondern darum, Facebook-Buttons nachträglich (bei sich verändernden Inhalten) zu parsen, zu reaktivieren.

Ich verwende galleriffic als Galerie. Ich möchte nun unter die Vorschaubilder entsprechende Like- und Senden-Buttons. Die fb:-Tags werden mitgeliefert. Das Problem ist nur, Facebook wird einmal beim Start aufgerufen, diese Bilder aber werden beim Anklicken eines anderen Bildes ersetzt. Dann steht da unten drunter nur der FB-Tag, ohne Iframe drin.

Ich habe jetzt in die index.php folgendes notiert:
(function()
{
var e = document.createElement("script");
e.src = document.location.protocol + "//connect.facebook.net/de_DE/all.js#xfbml=1";
e.async = true;
document.getElementById("fb-root").appendChild(e);
}
());


Und die jquery.galleriffic.js habe ich verändert. Und zwar ab Zeile 528 in die Funktion refresh:
$('#fb-root').empty();
var e = document.createElement("script");
e.src = document.location.protocol + "//connect.facebook.net/de_DE/all.js#xfbml=1";
e.async = true;
document.getElementById("fb-root").appendChild(e);


So dauert es zwar eine Weile, bis die Buttons auftauchen, aber sie tauchen auf. Allerdings nur im Firefox. Wie bekomme ich es hin, dass sie auch im Internet Explorer auftauchen?

Ist mein Ansatz überhaupt korrekt? Ich habe es schon mit der Variante FB.parse etc. versucht, bekam aber die Fehlermeldung, Variable FB sei nicht bekannt.
News:
01.06.2011
johny7 521 1 8
3 Antworten
1
Wenn neue Elemente hinzugefügt werden, wie in deinem Fall ein <fb:like> dann sollte danach immer FB.XFBML.parse(); aufgerufen werden. Der Funktion kannst du per document.getElementById('meineid') noch ein Element übergeben, damit nicht die ganze Seite neu geparst werden muss.
10.06.2011
BenjaminPaap 11 1
1
Also, ich habe jetzt mehrere Versuche gehabt, bis ich zum Ziel kam.

Zu erst hat man mich darauf hingewiesen, den einleitenden html-Tag entsprechend für facebook zu setzen:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">


Das habe ich gemacht und habe versucht, mit der FB.XFBML.parse() die Elemente zu parsen; nach wie vor war FB nicht definiert. Schließlich habe ich es gelöst, indem ich nach wie vor folgenden Schnipsel jedes mal aufgerufen habe:
(function()
{
$('#fb-root').empty();
var e = document.createElement("script");
e.src = document.location.protocol + "//connect.facebook.net/de_DE/all.js#xfbml=1";
e.async = true;
document.getElementById("fb-root").appendChild(e);
}
());

Neu ist hier, dass dieses mal dieses Klammer-Konstrukt drumherum ist. Außerdem habe ich es jetzt in die Funktion 'gotoImage' gesetzt, ab Zeile 35. (Den HTML-Tag ließ ich mit den Facebook-Angaben)
Jetzt funktioniert es, auch im InternetExplodierer.

By the way:
Kann mir jemand bei Gelegenheit erklären, was das erwähnte Klammernkonstrukt bewirkt?
10.06.2011
johny7 521 1 8
0
Hallo johny7,
ich nutze auch Galleriffic und hatte versucht, den Like-Button einzubinden, bin aber kläglich gescheitert. ;-(
So ganz schlau werde ich aus diesem thread auch noch nicht. Kann man deine Implementierung irgendwo im Live-Betrieb anschauen?
18.06.2011

Stelle deine Javascript-Frage jetzt!