Pulsante Mi piace di Facebook: come disabilitare la comparsa dei commenti?


107

Vorrei disabilitare la casella Commento che si apre quando un utente fa clic sul pulsante Mi piace di Facebook (fbml) che ho inserito nel mio sito. È possibile farlo? Non riesco a trovare alcun dettaglio nella documentazione.


2
Non sono riuscito a trovare una risposta per te. Hai considerato il "Like Box" come una soluzione? sviluppatori.facebook.com/docs/reference/plugins/like-box . Puoi disattivare "Mostra flusso" e "Mostra intestazione" e impostare "Connessioni" su 0, in modo da rendere il markup risultante di dimensioni ragionevoli.
zombat

Ho aggiunto una risposta che ho trovato come soluzione alternativa.
BrynJ

Risposte:


125

La soluzione più semplice per nascondere la casella dei commenti dopo Facebook Like (versione XFBML non iframe) è quella fornita:

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

Metti lo stile CSS in uno qualsiasi dei tuoi file CSS e vedi la magia, funziona :)


Grazie Jonathan anche se non sono il migliore :) Ho lottato per lo stesso e ho provato a risolvere usando CSS piuttosto cercando le soluzioni fantasiose e ha funzionato "come un fascino" :)
Mohammad Arif

8
Nessuno pensa che la risposta di BrynJ possa essere la migliore? Se Facebook cambia le proprie classi nel markup, questo metodo verrà interrotto.
tybro0103

Incredibile che non ci sia ancora alcuna opzione in cui puoi effettivamente disabilitare il pop-up dei commenti. Funziona alla grande.
Messing

@tybro, se i nomi delle classi cambiano per caso dalla fine di Facebook, ovviamente si può cambiare facilmente la regola anche dal CSS, non richiede alcun tipo di modifica funzionale, questa è la soluzione più semplice per nascondere il popup dei commenti fino al tempo FB non lo rende configurabile.
Mohammad Arif

14
Questo non ha funzionato per me a partire dal 12 febbraio 2013. Ho dovuto usare la soluzione di Kotzilla
Bashevis

81

Mettere l'iframe in un div di dimensioni appropriate con overflow impostato su nascosto ha risolto questo problema, sebbene questo in realtà nasconda il problema in quanto tale.


5
Divertente per me che l'altro ragazzo abbia ottenuto tutti i voti. Forse il suo metodo fa risparmiare tre minuti, ma se Facebook cambia le loro classi si interromperà.
tybro0103

@tybro Puoi aggiungere una classe al tag fb e assegnargli uno stile, quindi fb che cambia la sua classe non influirà sul tuo codice.
Gangesh

1
@ Gangesh Um no, non puoi. Il markup proviene direttamente da Facebook su cui non hai il controllo.
tybro0103

@ tybro0103, ho aggiunto un metodo che non si interromperà anche se FB cambia le loro classi
Zorox

Grazie mille @BrynJ
Abhishek

69

Lo uso nel mio CSS:

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

e renderizza il pulsante Facebook con il normale codice HTML5, qualcosa del genere:

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

GR-


4
Dopo aver provato le altre soluzioni, questa ha funzionato meglio. Iframe non adatto perché devo iscrivermi all'evento edge.create. Il nuovo rendering del tag div nel gestore dell'evento edge.create ha avuto un po 'di ritardo. Anche l'altra soluzione CSS che utilizza ".fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr" non ha funzionato per me.
CodeWarrior

Questo è l'unico che ha funzionato anche per me. Sto usando il metodo di incorporamento non iframe.
TK123

4
Non funziona davvero (gennaio 2014). Non disabilita la casella dei commenti, ma la nasconde. Se premi il pulsante Mi piace (fai attenzione ad aggiornare la pagina dopo aver deselezionato il collegamento con cui stai testando) e poi inizi a digitare, il messaggio <div>rimane la stessa dimensione ma mostra la casella di immissione del testo, quindi premi Tab e i pulsanti Chiudi e Pubblica diventano visibili . Non bene. Stavo testando con Firefox.
Annabel

yeeeaaahh, questa soluzione che funziona davvero, grazie !!
Michael

14

Quello che ho fatto è creare un div per il pulsante "mi piace" in questo modo:

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

E questo è il CSS:

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

4
Questa è in realtà la migliore soluzione alternativa che ho trovato. Se utilizzi il layout del conteggio delle caselle, utilizza il seguente CSS: .fb-like {overflow: hidden; altezza: 61px; } Vedrai solo la piccola tacca sopra il pulsante Mi piace ma non sarai più infastidito da questo stupido popup.
NicolasBernier

Per il tema minimale di Shopify, questo utilizzo di un div wrapping ha funzionato sia sul Web che sul dispositivo mobile, mentre l'override della classe simile a fb ha funzionato direttamente sul Web ma non sui dispositivi mobili (a causa
dell'inclusione di

9

Mi piace la soluzione di Mohammed Arif e la scelgo come la migliore risposta. Ma nel caso in cui FB abbia cambiato classe, il seguito funzionerà sempre.

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();
});

dove "like_button_holder" è il "TUO" div id che contiene il codice del pulsante Mi piace di Facebook


4
Ho usato questa soluzione perché con gli stili CSS non posso nascondere un div all'interno di un iframe.
Pons

questo è davvero intelligente, tuttavia, la casella dei commenti potrebbe essere vista per un tempo molto breve
pinkdawn

1
Non la definirei una buona soluzione "davvero intelligente": implica la rimozione del markup del pulsante Mi piace (ma rendere orfano un codice di gestione degli eventi), fare una nuova aggiunta al DOM, rianalizzare il DOM dell'intera pagina per XFBML e rigenerare un nuovo pulsante Mi piace, che significa più gestori di eventi, ridipingere e ridisegnare, alcune nuove richieste, ecc. In realtà la definirei una cattiva soluzione, o forse non è affatto una soluzione poiché quello che stai facendo è come aggiornare il tuo browser con acquisto di un nuovo computer.
AndrewF

1
Hai un'idea migliore? Quella dannata casella dei commenti non andrà via altrimenti.
Amalgovinus

@AndrewF - un'idea migliore allora?
Jeremy Haile

5

La soluzione più pulita che funziona (a partire da maggio 2014 ) -

  1. Prima di tutto assicurati che <div class="fb-like" abbia la proprietà data-layout come pulsante -

    <div class="fb-like" data-layout="button"........></div>
    
  2. Basta aggiungere questo CSS-

    .fb-like{
       overflow: hidden !important;
    }
    

Questo è tutto!

dimostrazione


4

Non essere un Debby Downer qui, ma nascondere la casella dei commenti non viola la politica di Facebook?

IV. Punti di integrazione dell'applicazione d. Non devi nascondere o coprire elementi dei nostri plug-in social, come il pulsante Mi piace o il plug-in della casella Mi piace.

https://developers.facebook.com/policy/


1
Ciò non fornisce una risposta alla domanda. Si prega di fare ulteriori osservazioni come commento.
Trinimon

2
È ironico: è la fottuta casella dei commenti che nasconde il mio pulsante Mi piace !!
Amalgovinus

3

Non sono riuscito a ottenere l' display: noneopzione per lavorare con la versione HTML 5 del pulsante. Invece ho scelto come target il div in cui è stato creato il pulsante del pulsante Mi piace e ho impostato l'overflow su nascosto.

L'eliminazione di quanto segue nel mio file css principale ha fatto il trucco:

#fb_button{
    overflow:hidden;
}

3

D'accordo con BrynJ, la soluzione migliore attualmente è mettere il pulsante Mi piace in un contenitore div alto 20px e impostare l'overflow su nascosto (ho letto da qualche parte che FB ha recentemente spostato il riquadro a comparsa dei commenti nell'iFrame, quindi la soluzione che modifica lo stile di . fb_edge_widget_with_comment probabilmente non è più utile per gli utenti iFrame).

Usi AddThis? Fai questo:

<div class="container" style="height: 20px; overflow: hidden;">
  <div class="addthis_toolbox addthis_default_style">
    <a class="addthis_button_facebook_like"></a>
  </div>
</div>

Posso confermare che la soluzione contenitore div 20px è l'unica funzionante.
Bashevis

2

Se il pulsante Mi piace scompare quando fai clic su "Mi piace" e hai un div contenitore per nascondere il popup del commento, utilizza la seguente soluzione:

creare un div contenitore per inserire il pulsante simile a fb e dargli il seguente css:

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

.fb_like iframe {
  left: 0 !important;
}

2

Sono riuscito a aggirare il problema del pop-up dei commenti del pulsante Mi piace di Facebook implementando invece la versione IFRAME. Ho seguito i seguenti passaggi per farlo:

  1. Visita https://developers.facebook.com/docs/plugins/like-button/
  2. Cambia l '"URL a cui piace" con l'URL della tua pagina Facebook
  3. Selezionare qualsiasi altra opzione (layout, tipo di azione, ecc.) Come desiderato
  4. Premi il pulsante "Ottieni codice"
  5. Seleziona la versione IFRAME
  6. Assicurati di selezionare la tua applicazione Facebook dove dice "Questo script usa l'ID app della tua app"
  7. Implementa il codice fornito nella tua applicazione

Da quello che posso vedere, il pulsante Mi piace con l'implementazione IFRAME non attiva alcun popup. Funziona semplicemente come un pulsante simile. Questo era il mio risultato desiderato.

In bocca al lupo.


Se non hai bisogno dell'ascoltatore di eventi, questa è la migliore risposta ufficiale. Grazie uomo !!
Yahel

1

Ecco il codice per far funzionare il pulsante Mi piace come un pulsante standard insieme a Twitter e Linkedin. Spero che sia d'aiuto.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>FB</title>


<style>
.social ul { overflow: hidden; margin:0; padding:0; list-style: none; } 
.social ul li { float: left; margin-right: 10px; }
</style>

</head>

<body>
<div id="fb-root"></div>

<div class="social">

    <ul>
        <li class="facebook">   
            <iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.smh.com.au&amp;send=false&amp;layout=button_count&amp;width=45&amp;show_faces=false&amp;font&amp;colorscheme=light&amp;action=like&amp;height=21&amp;appId=333450970117655" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:48px; height:21px;" allowTransparency="true"></iframe> 
        </li>
        <li class="twitter">
            <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.smh.com.au" data-count="none">Tweet</a>
        </li>
        <li class="linkedin">
            <script type="IN/Share" data-url="http://www.smh.com.au/"></script>
        </li>
    </ul>
</div>

<script>(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=333450970117655";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');
</script>

<script src="//platform.linkedin.com/in.js" type="text/javascript">lang: en_US</script>

</body>
</html>

Bello, questa è stata la migliore soluzione che ho provato dalla pagina. Grazie ANCORA @Rafael.
Stuart

1

Proviamo questo:

FB.Event.subscribe('edge.create', function(response) {
    var $parent =  $('[href="'+response+'"]').parent();
    $parent.empty();
    $parent.html('<fb:like href="'+response+'" send="false" layout="button_count" width="120" show_faces="false" action="like"></fb:like>');
    FB.XFBML.parse();
 });

1

Come ho fatto bene, il popup dei commenti verrà disabilitato quando:

  1. Mostra volti: -> deselezionalo
  2. Ottieni codice: -> scegli l'opzione IFRAME

1

Se utilizzi il pulsante HTML5 più recente e dovresti, poiché è compatibile con le versioni successive e suggerito da Facebook, è facile, partendo da ciò che hanno detto gli altri:

.fb-like, .addthis_button_facebook_like
  height: 25px
  overflow: hidden

La seconda classe è un bonus per coloro che utilizzano il plugin AddThis.


0

Le opzioni di altezza di overflow sopra menzionate non dovrebbero essere utilizzate quando show-faces=true . Altrimenti, nasconderà i volti.


0

Nel mio caso (con la versione XFBML) ho aggiunto al tag questo:

width="90" height="20" style="overflow: hidden;"

Quindi il risultato finale è:

<fb:like data-href="URL" send="false" layout="button_count" width="90" height="20" style="overflow: hidden;" show_faces="false" colorscheme="light" action="like"></fb:like>

Nasconde correttamente il popup dei commenti.


0

Nascondere la casella dei commenti funziona ma può creare problemi se si dispone di un elemento selezionabile dietro la casella a comparsa dei commenti.

Devi nasconderlo e rimuoverlo dal post DOM come.

Ecco il CSS per nascondere la casella dei commenti:

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

Ecco il modo JQuery di rimuovere l'elemento DOM:

 FB.Event.subscribe('edge.create', function (href, widget) {        
    $('.fb_edge_comment_widget.fb_iframe_widget').remove()       
});

Ecco il modo javascript puro utilizzando il widget fornito dalla richiamata:

FB.Event.subscribe('edge.create', function (href, widget) {
    widget._commentWidgetNode.parentNode.removeChild(widget._commentWidgetNode);        
});

Come dovrei creare regole CSS per contenuti iframati su un altro dominio? Per non parlare delle classi CSS i cui nomi saranno diversi il prossimo mese?
Amalgovinus

0

Se vuoi mostrare solo il pulsante Mi piace, puoi provare qualcosa di simile

HTML:

<div class="fb_like">
    <div class="fb-like" data-href="http://google.com" data-send="false" data-layout="button_count" data-width="450" data-show-faces="false"></div>
    <div class="like_counter_hider"></div>
</div>

CSS:

.fb_like {
    overflow: hidden;
    width: 80px;
    height: 20px;
}
.like_counter_hider {
    position: absolute;
    top: 0;
    left: 45px;
    width: 35px;
    height: 20px;
    background-color: #f3f3f3; /*you'll have to match background color*/
    z-index: 200;
}

0

L'impostazione di overflow su nascosto potrebbe aiutare. Fallo nel tuo file css principale ..

#fb_button{
overflow:hidden;
}

0

Che ne dici di rendere l'iframe che contiene il pulsante Mi piace delle stesse dimensioni del pulsante:

.fb_iframe_widget_lift
{
    width: 49px !important;
    height: 20px !important;
}

Questo è tutto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.