2012-04-06 5 views
6

Ich möchte das Facebook "Like Box" -Plugin und einen anderen FB-Code in einer Ajax-geladenen Seite zeigen.facebook "Like Box" in Ajax geladene Seite lädt nur das erste Mal?

Als ich es in einer gewöhnlichen HTML-Seite geladen werden es funktioniert, wie es sollte, aber wenn ich versuche, es in einer Ajax-Last-Seite zu setzen lädt es nur das erste Mal, wenn ich auf den Link klicken Sie auf die Seite zu laden das zweite Mal lädt es nicht die Seite? Es lädt nur die Seite, wenn ich den Cache lösche.

Die Indexdatei initialisiert den FB-Code.

FB.init({ 
    appId  : '277065222', // App ID 
    status  : true, // check login status 
    cookie  : true, // enable cookies to allow the server to access the session 
    xfbml  : true, // parse XFBML 
    oauth  : true 
}); 

lade ich die Ajax-Seite mit diesem Code:

function loadFacebook(){ 

$('#container').load('http://www.manmade.se/manmade/guiden/facebook_onweb.html'); 
FB.XFBML.parse(); 
} 

Und in der Ajax geladen Seite habe ich die Facebook-Code, zB die Facebook Like Box.

+0

Können Sie genauer darüber sein, was genau von der Ajax-Anruf zurückkehrt? Was meinst du mit "die Seite nicht laden"? Dass der Ajax-Aufruf nicht funktioniert oder der FB-Code nicht geparst wird? –

Antwort

4

reloadlike.html

<div class="fb-like fltLeft" data-href="http://yrl_like" data-send="false" data-layout="button_count" data-width="87" data-show-faces="false"></div> 

sollte dies jedes Mal arbeiten.

Ich denke, Ihr Rückruf ist nicht richtig.

$('#container').load('reloadlike.html', function() { 
    FB.XFBML.parse(); 
}); 
+0

Danke, aber es zeigt immer noch nur die Seite beim ersten Mal. Siehe www.manmade.se/guiden.asp und dort der Linksseitenlink unten. Facebook im Web. Ich verstehe nicht, warum es das erste Mal lädt, aber der Stop funktioniert. Es zeigt immer eine Warnung an, die auf der Ajaxpage ist, aber nicht die anderen Sachen. –

+0

Ich habe meinen vorherigen Kommentar aktualisiert. Die Ajax-Anfrage sollte nur Inhalt FBML wie Tag. In Ihrem facebookonweb.html ist das ganze HTML dort ... so machen Sie fbml Code für das gleiche reload nur getrennt. – Madan

+0

Ok, aber das Problem ist, dass in der facebook_onweb.html Seite habe ich sowohl 2 Like-Boxen und einige andere Facebook-Code, der ex bekommt. Alben von Facebook mit der Facebook API. –

14

Sie können fb Skript

(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/en_US/all.js#xfbml=1&appId=11111code"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 


$(document).ajaxComplete(function() { 
    try { 
     FB.XFBML.parse(); 
    } catch (ex) { } 
}); 
+1

Das hat bei mir funktioniert, danke! –

0

Wechselnde ein wenig den Beispielcode aus bugrasitemkar, am Ende des Ajax-Code fb par Skript in Ihre Seite zu laden, rufen Sie nach dem Aufruf, schließe ich dieses jquery Skript und es funktioniert:

<script type="text/javascript"> 
    $(document).ready(function() { 
     try { 
      FB.XFBML.parse(); 
     } catch (ex) { } 
    }); 
</script> 
Verwandte Themen