2014-03-13 7 views
5

Gibt es etwas, ich kann ein jQuery-Ereignis zu binden, wann ist Facebook einzubetten Post ist fertig geladen?jQuery Hook auf Facebook embed Post fertig

Ich muss ein Maurerachladen auslösen, nachdem alle meine Facebook-Beiträge geladen sind. weil sie nur die richtige Höhe haben, nachdem der Inhalt geladen wurde.

Der nächstgelegene ich bekam, war:

$(window).on('load', function() { 
    $('iframe').on('load', function() { 
     $container.masonry(); 
    }); 
}); 

Aber irgendwie das Ereignis manchmal ausgelöst, bevor der Inhalt geladen wird.

+0

Können Sie uns zeigen, was Sie versucht haben? Mit etwas verfügbarem Code können wir Ihnen helfen. –

+0

Am nächsten habe ich ist enthalten – Nealv

+0

Werfen Sie einen Blick auf done() - https://api.jquery.com/deferred.done/ –

Antwort

2

Es fiel mir ein, dass es eine andere Art und Weise ist, die bereit Handler -

$(window).on('load', function() { 
    $('iframe').ready(function() { 
     $container.masonry(); 
    }); 
}); 
5

Wenn Sie den XFBML Parser direkt aufrufen (so xfbml=0 anstelle des normalerweise eingebettet xfbml=1) können Sie einen Rückruf können sein:

window.fbAsyncInit = function() { 
    FB.XFBML.parse(null, function() { 
     console.log("parsing is complete!"); 
    }); 
}; 
+0

Ich möchte betonen, wie wichtig es ist, 'xfbml = 0' zu Ihrer Einbettung hinzuzufügen. Wenn dies nicht der Fall ist, kann das Ereignis "fb-xfbml-state =" gerendert "" ausgelöst werden, bevor es das Rendern tatsächlich beendet. Dies sollte die richtige Antwort sein. –

+0

Danke! Wo füge ich'xfbml = 0 'hinzu? Im Code der Facebook-Post oder eher zum SDK-Snippet? – Volker