106 votes

Bouton "J'aime" de Facebook - comment désactiver la fenêtre pop-up de commentaire ?

J'aimerais désactiver la boîte de commentaires qui s'affiche lorsqu'un utilisateur clique sur le bouton J'aime de Facebook (fbml) que j'ai placé sur mon site. Est-ce possible ? Je ne trouve aucun détail dans la documentation.

2 votes

Je n'ai pas trouvé de réponse pour vous. Avez-vous envisagé la "Like Box" comme solution de rechange ? developers.facebook.com/docs/reference/plugins/like-box . Vous pouvez désactiver les options "Show Stream" et "Show Header", et définir la valeur "Connections" à 0, et le balisage résultant sera de taille raisonnable.

0 votes

J'ai ajouté une réponse que j'ai trouvée comme solution de contournement.

125voto

Mohammed Arif Points 2303

La solution la plus simple pour masquer la boîte de commentaires après un "Like" Facebook (version XFBML, pas la version iframe) est la suivante :

.fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr {
    display: none !important;
}

Placez le style CSS dans n'importe quel fichier CSS et voyez la magie, ça marche :)

0 votes

Merci Jonathan bien que je ne sois pas le meilleur :) J'ai eu du mal avec la même chose et j'ai essayé de résoudre le problème en utilisant les CSS plutôt que de chercher des solutions fantaisistes et ça a marché "comme un charme" :)

8 votes

Personne ne pense que la réponse de BrynJ est peut-être la meilleure ? Si facebook modifie ses classes dans le balisage, cette méthode sera cassée.

0 votes

Il est étonnant qu'il n'y ait pas encore d'option permettant de désactiver la fenêtre pop-up des commentaires. Cela fonctionne très bien.

80voto

BrynJ Points 3625

Le fait de placer l'iframe dans un div de taille appropriée avec overflow réglé sur hidden a permis de résoudre le problème - bien que cela ne fasse que masquer le problème en tant que tel.

5 votes

C'est drôle que l'autre gars ait eu tous les votes. Peut-être que sa méthode permet de gagner trois minutes, mais si facebook change ses classes, ça va casser.

0 votes

@tybro Vous pouvez ajouter une classe à la balise fb et la styliser, ainsi le changement de classe de fb n'affectera pas votre code.

1 votes

@Gangesh Um non, vous ne pouvez pas. Le balisage provient directement de Facebook, sur lequel vous n'avez aucun contrôle.

68voto

Elmer Points 2377

Je l'utilise dans mon CSS :

.fb-like{
    height: 20px;
    overflow: hidden;
}

et rendre le bouton Facebook avec le code HTML5 normal, quelque chose comme ceci :

<div class="fb-like" data-layout="button_count" data-show-faces="false"></div>

gr-

4 votes

Après avoir essayé les autres solutions, c'est celle-ci qui a le mieux fonctionné. L'Iframe ne convient pas car je dois souscrire à l'événement edge.create. Le re-rendu de la balise div dans le gestionnaire d'événement edge.create est un peu lent. L'autre solution CSS utilisant ".fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr" n'a pas fonctionné pour moi non plus.

0 votes

C'est le seul qui a fonctionné pour moi aussi. J'utilise la méthode d'intégration sans iframe.

4 votes

Ne fonctionne pas vraiment (janvier 2014). Il ne désactive pas la boîte de commentaires, il la cache simplement. Si vous appuyez sur le bouton Comme (veillez à rafraîchir votre page après avoir désaimanté le lien que vous testez) et commencez à taper, le bouton <div> reste de la même taille mais affiche la zone de saisie de texte, puis appuyez sur la touche tabulation et la Fermer y Poste deviennent visibles. Ce n'est pas bon. Je testais avec Firefox.

14voto

Kotzilla Points 675

Ce que j'ai fait est de créer un div pour le bouton "like" comme ceci :

<div class="fb_like">
  <fb:like href="yourlink" send="false" layout="button_count" width="90" show_faces="false" font="arial"></fb:like>
</div>

Et voici le CSS :

.fb_like {  
  overflow: hidden;
  width: 90px;
}

4 votes

C'est en fait la meilleure solution de contournement que j'ai trouvée. Si vous utilisez la disposition en nombre de cases, utilisez le CSS suivant : .fb-like { overflow : hidden ; height : 61px ; } Vous ne verrez que la petite encoche au-dessus du bouton "J'aime", mais vous ne serez plus gêné par cette popup stupide.

0 votes

Pour le thème minimal shopify, l'utilisation d'un div enveloppant a fonctionné à la fois sur le web et sur le mobile, alors que le simple fait de remplacer directement la classe fb-like a fonctionné sur le web mais pas sur le mobile (en raison de l'inclusion de classes supplémentaires spécifiques au média).

9voto

Barjas Points 1410

J'aime la solution de Mohammed Arif et je la choisis comme la meilleure réponse. Mais dans le cas où FB a changé de classe, alors la solution ci-dessous fonctionnera toujours

FB.Event.subscribe('edge.create', function(response) {
   $('#like_button_holder').html('<div class="fb-like" data-href="http://www.your-url.com" data-send="false" data-layout="button_count" data-width="50" data-show-faces="false"></div>')
   FB.XFBML.parse();
});

où "like_button_holder" est "VOTRE" div id contenant le code du bouton facebook like.

4 votes

J'ai utilisé cette solution parce qu'avec les styles css je ne peux pas cacher un div dans un iframe.

0 votes

C'est vraiment intelligent, cependant, la boîte de commentaires pourrait être vue pendant très peu de temps

1 votes

Je n'appellerais pas cela une bonne solution "vraiment intelligente" -- cela implique de supprimer le balisage du bouton J'aime (mais de supprimer une partie du code de gestion des événements), de faire un nouvel ajout au DOM, de reparamétrer le DOM de la page entière pour XFBML, et de régénérer un nouveau bouton J'aime, ce qui signifie plus de gestionnaires d'événements, un repeint et un reflux, quelques nouvelles requêtes, etc. Je dirais même que c'est une mauvaise solution, ou peut-être pas une solution du tout, car ce que vous faites revient à mettre à niveau votre navigateur en achetant un nouvel ordinateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X