Comme vous savez probablement que le bouton Facebook comme Button charge très lentement. P>
Et j'essaie de comprendre comment détecter lorsque le bouton a terminé le chargement et a été ajouté au site Web. P>
La raison étant que je montrais une animation de chargement, puis cachez-la et montre le bouton, mais je voudrais afficher le bouton lorsqu'il a fini de chargement. P>
peut-il être fait? P>
Merci d'avance tout le monde! P>
3 Réponses :
Je suis à peu près sûr que le bouton Facebook comme est enveloppé dans un iframe. Si tel est le cas, vous pouvez trouver quelque chose à réfléchir à l'IFRAME et à utiliser ->
$('iframe[frameborder=0]').load(function(){ alert("loaded."); });
C'est un iframe code>, mais que
iframe code> est inséré par un script (par exemple,
// connect.facebook.net/en_gb/all.js code>) Et dans mon expérience, c'est le travail du script qui prend du temps, ce qui ne crée pas le
iframe code> et montrant le contenu - cette partie est réellement très rapide. Peut-être que l'OP peut décrire ses symptômes plus. En tout cas, votre réponse résoudra son problème. Remarque: Utilisez
$ ('iframe.fb_ltr') code> car il s'agit de la classe mes pages.
En ce qui concerne le code, j'ai constaté que l'ID est généré au hasard afin que je ne sais pas comment attraper cela, et il n'a pas de classe. J'ai essayé .fb_ltr au lieu de l'identifiant et la fonction ne tire pas. Des idées? Merci pour votre aide!
Quels autres attributs l'iframe a-t-il, a-t-il un nom? la taille? largeur? n'importe quoi? Nous pouvons vous connecter à n'importe quel attribut et filtrer le sélecteur basé sur cela.
J'ai essayé qu'il y ait une classe div appelée 'fb-like fb_get_widget_with_comment fb_iframe_widget' et j'ai fait un crochet comme suit: '$ ('. FB-like fb_iver_widget_with_frame_widget iframe ')' et ça ne tire toujours pas? Désolé si je fais quelque chose de mal!
Je regarde le site que j'utilise, j'ai aussi un bouton comme. Mon balisage ressemble à
Pour confirmer, ce code passe dans le document.Ready Drête? Parce que la fonction ne tire toujours pas: /
Laissez-nous Continuez cette discussion en chat
"Et dans mon expérience, c'est le travail du script qui prend du temps, ne créant pas l'iframe et montrant le contenu" i> - je suis en désaccord; Analysant XFBML et la création de l'IFrame est généralement si rapide, il est à peine perceptible. Mais ce qui prend du temps est la demande HTTP aux serveurs de Facebook pour charger le contenu iframe i>.
La solution de Kalmi d'incorporer l'abonnement à l'événement de Facebook est plus élégante et moins susceptible aux futures mises à jour de la stratégie de charge de FB.
Bien que cette solution serait assez géniale. Si cela incendie réellement sur la charge iframe, nous pouvons l'utiliser pour tous ces mauvais boutons de partage social. Cela a-t-il fonctionné pour vous les gars? Je ne vois pas de réponses qui disent que ça fait.
@Vik c'était il y a 2 ans et n'est plus une solution viable :). Il serait préférable de s'en tenir à l'événement de rendu FB comme indiqué ci-dessus à ce stade.
One peut S'abonner à l'événement XFBML.Render pour être averti lors du rendu est terminé, qui ne tire qu'une fois par page analysant (et fonctionne non seulement pour XFBML, mais également pour le nouveau supercherie HTML5). Page analysante se produit automatiquement lorsque le FB JS SDK charge si xfbml: true code>.
Juste FYI: XFBML et "Le nouveau supercherie HTML5" sont en fait la même chose. Les éléments div-éléments avec la classe et les données appropriés - quels que les attributs sont exactement ce que FB appelle la "façon compatible HTML5 d'écrire des balises xfbml".
Quelqu'un pourrait-il me marcher à travers exactement où dans le code Facebook, j'ai besoin d'insérer cette pièce?
N'oubliez pas que cela ne tient pas compte si l'Iframe, FB Plugin utilise, a encore chargé. Donc, vous ne pouvez pas dire si votre mise en page est mise à jour ou non.
Si vous ajoutez du widget Facebook de manière dynamique et que vous appelez ainsi FB. Xfbml.parse manuellement, vous pouvez simplement spécifier une fonction de rappel qui est appelée lorsque le rendu est terminé. P>
Autant que je sache, le bouton "J'aime" Facebook traite votre page une fois votre page terminée en chargement de tous les éléments. Il peut être préférable de profil d'abord de votre page pour voir ce qui prend le plus longtemps à charger (probablement des images). J'utilise: développeurs.google.com/chrome-developer-Tools/docs/network
@CodesLeuth Mon site Web n'a pas beaucoup d'images et de charges dans une seconde. J'attends juste que le bouton Facebook comme le charger. Même si cela commence à charger une fois que la charge est terminée, comment le détecter?