फेसबुक लाइक बटन - टिप्पणी को निष्क्रिय कैसे करें?


107

जब कोई उपयोगकर्ता फेसबुक (fbml) पर क्लिक करता है तो मैं उस टिप्पणी बॉक्स को निष्क्रिय करना चाहता हूं, जैसे बटन मैंने अपनी साइट पर रखा है। क्या ऐसा करना संभव है? मुझे प्रलेखन में कोई विवरण नहीं मिला।


2
आपके लिए उत्तर नहीं मिल सका। क्या आपने "लाइक बॉक्स" को काम के इर्द-गिर्द माना है? developers.facebook.com/docs/reference/plugins/like-box । आप "शो स्ट्रीम" और "शो हैडर" को बंद कर सकते हैं, और "कनेक्शन" को 0 पर सेट कर सकते हैं, और यह परिणामी मार्कअप को यथोचित आकार देता है।
ज़ोम्बैट

मैंने एक जवाब मिला है जिसे मैंने एक वर्कअराउंड के रूप में पाया है।
ब्रायनज

जवाबों:


125

फेसबुक लाइक के बाद कमेंट बॉक्स को छिपाने के लिए सबसे सरल फिक्स (XFBML संस्करण iframe one नहीं है) निम्नानुसार है:

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

अपनी किसी भी CSS फ़ाइल में CSS स्टाइल डालें और जादू देखें, यह काम करता है :)


धन्यवाद जोनाथन हालांकि मैं सबसे अच्छा नहीं हूं :) मैं उसी पर संघर्ष करता रहा और बस फैंसी समाधानों की तलाश में सीएसएस का उपयोग करने का समाधान करने की कोशिश की और इसने 'एक आकर्षण की तरह' काम किया :)
मोहम्मद आरिफ

8
किसी को नहीं लगता कि BrynJ उत्तर सबसे अच्छा हो सकता है? यदि फेसबुक मार्कअप में अपनी कक्षाएं बदलता है, तो यह विधि टूट जाएगी।
tybro0103

कमाल है कि अभी तक कोई विकल्प नहीं है, जहां आप वास्तव में टिप्पणी पॉप-अप को अक्षम कर सकते हैं। बहुत अच्छा काम करता है।
मेसिंग

@tybro, अगर फ़ेसबुक के किसी भी मौके से क्लास के नाम बदल जाते हैं, तो बेशक सीएसएस से भी आसानी से नियम बदल सकते हैं, इसके लिए किसी भी तरह के फ़ंक्शनल चेंज की ज़रूरत नहीं है, कमेंट पॉपअप तक छिपाने का सबसे आसान फ़िक्स है समय FB इसे कॉन्फ़िगर करने योग्य नहीं बनाता है।
मोहम्मद आरिफ

14
इसने मेरे लिए 12 फरवरी 2013 तक काम नहीं किया। कोज़िला के समाधान का उपयोग करना था
बशीविस

81

इस समस्या को हल करने के लिए ओवरफ्लो सेट के साथ एक उचित आकार में आईफ्रेम डालना इस मुद्दे को हल करता है - हालांकि यह वास्तव में इस तरह की समस्या को छिपा रहा है।


5
मेरे लिए मजेदार है कि दूसरे आदमी को सभी वोट मिले। शायद उसकी विधि तीन मिनट बचाती है, लेकिन अगर फेसबुक अपनी कक्षाएं बदलता है तो यह टूट जाएगा।
tybro0103

@tybro आप fb टैग में क्लास जोड़ सकते हैं और इसे स्टाइल कर सकते हैं, इसलिए fb अपनी क्लास बदलने से आपके कोड पर कोई असर नहीं पड़ेगा।
गंगेश

1
@ गणेश उम नहीं, आप नहीं कर सकते। मार्कअप फेसबुक से सीधे आता है जिस पर आपका नियंत्रण नहीं है।
tybro0103

@ tybro0103, मैंने एक ऐसा तरीका जोड़ा जो FB के वर्ग बदलने पर भी नहीं टूटेगा
ज़ोरॉक्स

बहुत बहुत धन्यवाद @BrynJ
अभिषेक

69

मैं अपने CSS में इसका उपयोग करता हूं:

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

और सामान्य HTML5 कोड के साथ फेसबुक बटन को प्रस्तुत करें, कुछ इस तरह से:

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

gr-


4
अन्य समाधानों को आज़माने के बाद, इसने सबसे अच्छा काम किया। Iframe उपयुक्त नहीं है क्योंकि मुझे edge.create इवेंट की सदस्यता लेने की आवश्यकता है। धार में div टैग को फिर से प्रस्तुत करना। घटना ईवेंट हैंडलर को इसमें थोड़ा अंतराल था। ".Fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr" का उपयोग करके अन्य सीएसएस समाधान मेरे लिए भी काम नहीं करता है।
कोडरियर

यह एकमात्र ऐसा है जिसने मेरे लिए भी काम किया। मैं गैर iframe का उपयोग कर रहा हूँ जैसे एम्बेड विधि।
TK123

4
वास्तव में काम नहीं करता (जनवरी 2014)। यह टिप्पणी बॉक्स को अक्षम नहीं करता है जो इसे सिर्फ छुपाता है। यदि आप लाइक बटन दबाते हैं (आप जिस लिंक के साथ परीक्षण कर रहे हैं उसे अवांछित करने के बाद अपने पृष्ठ को रीफ्रेश करने के लिए सावधान रहें) और फिर टाइप करना शुरू करें, <div>एक ही आकार रहता है, लेकिन टेक्स्ट एंट्री बॉक्स दिखाता है, फिर टैब और क्लोज़ और पोस्ट बटन दिखाई देते हैं । अच्छा नही। मैं फ़ायरफ़ॉक्स के साथ परीक्षण कर रहा था।
एनाबेल

yeaeaaahh, यह समाधान जो वास्तव में काम करता है, धन्यवाद !!
माइकल

14

मैंने जो किया वह इस तरह "जैसे" बटन के लिए एक div टोकरा है:

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

और यह सीएसएस है:

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

4
यह वास्तव में मुझे मिला सबसे अच्छा समाधान है। यदि आप बॉक्स काउंट लेआउट का उपयोग करते हैं, तो निम्न CSS का प्रयोग करें: .fb-like {overflow: hidden; ऊंचाई: 61 पीएक्स; } आपको सिर्फ छोटे बटन जैसे बटन दिखाई देंगे, लेकिन आप इस बेवकूफ पॉपअप से नाराज नहीं होंगे।
निकोलसबर्नियर

न्यूनतम विषय-वस्तु की बिक्री के लिए, रैपिंग डिव का यह प्रयोग वेब और मोबाइल दोनों पर काम करता है, जबकि सिर्फ fb जैसी क्लास को सीधे वेब पर काम करते हैं, लेकिन मोबाइल पर नहीं (अतिरिक्त मीडिया विशिष्ट वर्गों को शामिल किए जाने के कारण)
gamozzii

9

मुझे मोहम्मद आरिफ का समाधान पसंद है और मैं इसे सर्वश्रेष्ठ उत्तर के रूप में चुनता हूं। लेकिन अगर एफबी ने कक्षाओं को बदल दिया, तो नीचे हमेशा काम करेगा ..

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

जहाँ "like_button_holder" बटन कोड की तरह facebook को पकड़कर "your" div id है


4
मैं इस समाधान का उपयोग किया है क्योंकि सीएसएस शैलियों के साथ मैं एक iframe के अंदर एक div छिपा नहीं सकता।
पॉन्स

यह वास्तव में स्मार्ट है, हालांकि, टिप्पणी बॉक्स को बहुत कम समय के लिए देखा जा सकता है
गुलाबी सुबह

1
मैं इसे "वास्तव में स्मार्ट" अच्छा समाधान नहीं कहूंगा - इसमें लाइक बटन मार्कअप को हटाना शामिल है (लेकिन कुछ ईवेंट हैंडलिंग कोड को अनाथ करना), डोम के लिए एक नया अतिरिक्त बनाना, पूरे पृष्ठ के डोम को एक्सएफबीएमएल के लिए फिर से तैयार करना और पुन: व्यवस्थित करना शामिल है। नया लाइक बटन, जिसका मतलब है कि अधिक ईवेंट हैंडलर, रेपेंट और रिफ्लो, कुछ नए रिक्वेस्ट, आदि। मैं वास्तव में इसे एक बुरा समाधान कहूंगा, या शायद आप जो भी कर रहे हैं, उसका समाधान नहीं है। एक नया कंप्यूटर खरीद रहा है।
एंड्रयूएफ

1
एक बेहतर विचार मिला? वह गोडमेड कमेंट बॉक्स अन्यथा नहीं जाएगा।
अमलगोविनास

@AndrewF - बेहतर विचार तो?
जेरेमी हैली

5

सफाई घोल कि काम करता है (के रूप में मई 2014 ) -

  1. सबसे पहले सुनिश्चित करें कि बटन के रूप <div class="fb-like" में डेटा-लेआउट संपत्ति है -

    <div class="fb-like" data-layout="button"........></div>
    
  2. बस इस सीएसएस जोड़ें-

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

बस!

डेमो


4

यहाँ एक डेबी डाउनर बनना नहीं है, लेकिन टिप्पणी बॉक्स को छिपाना फेसबुक नीति का उल्लंघन नहीं करता है?

चतुर्थ। अनुप्रयोग एकीकरण अंक d। आपको हमारे सामाजिक प्लगइन्स के तत्वों को अस्पष्ट या कवर नहीं करना चाहिए, जैसे कि लाइक बटन या लाइक बॉक्स प्लगइन।

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


1
यह प्रश्न का उत्तर प्रदान नहीं करता है। कृपया टिप्पणी के रूप में अतिरिक्त टिप्पणी करें।
त्रिनिमोन

2
यह विडंबना है - यह f * cking कमेंट बॉक्स है जो मेरे लाइक बटन को छुपा रहा है !!
अमलगोविनास

3

मैं नहीं मिला display: none बटन के HTML 5 संस्करण के साथ काम करने विकल्प । इसके बजाय मैंने div को लक्षित किया कि बटन की तरह बटन बनाया गया है और ओवरफ्लो को छिपाया गया है।

मेरी मुख्य सीएसएस फ़ाइल में निम्नलिखित को छोड़ना चाल को किया:

#fb_button{
    overflow:hidden;
}

3

BrynJ से सहमत हैं, सबसे अच्छा समाधान वर्तमान में एक बटन को 20px उच्च डिव कंटेनर में रखना है, और ओवरफ्लो को छिपाकर सेट करना है (मैंने कहीं पढ़ा है कि FB ने हाल ही में टिप्पणी फ़्लायआउट को iFrame में स्थानांतरित कर दिया है, इसलिए समाधान जो स्टाइल को संशोधित करता है । fb_edge_widget_with_comment शायद iFrame उपयोगकर्ताओं के लिए अब उपयोगी नहीं है)।

AddThis का उपयोग करना? यह करो:

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

पुष्टि कर सकते हैं कि 20px डिव कंटेनर समाधान केवल काम कर रहा है।
बाशविस

2

अगर "लाइक" पर क्लिक करने पर लाइक बटन गायब हो जाता है और कमेंट पॉप-अप को छुपाने के लिए आपके पास एक कंटेनर div है, तो निम्न समाधान का उपयोग करें:

fb जैसा बटन लगाने के लिए एक कंटेनर div बनाएं और इसे निम्नलिखित सीएसएस दें:

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

.fb_like iframe {
  left: 0 !important;
}

2

मैं इसके बजाय IFRAME संस्करण को लागू करके बटन टिप्पणी पॉप-अप मुद्दे की तरह फेसबुक को दरकिनार करने में कामयाब रहा। मैंने ऐसा करने के लिए निम्नलिखित कदम उठाए:

  1. पर जाएँ https://developers.facebook.com/docs/plugins/like-button/
  2. अपने फेसबुक पेज के यूआरएल में 'लाइक टू लाइक' बदलें
  3. वांछित के रूप में किसी अन्य विकल्प (लेआउट, एक्शन टाइप आदि) का चयन करें
  4. 'कोड प्राप्त करें' बटन दबाएं
  5. IFRAME संस्करण का चयन करें
  6. सुनिश्चित करें कि आप अपने फेसबुक एप्लिकेशन का चयन करें जहां यह कहता है कि 'यह स्क्रिप्ट आपके ऐप की ऐप आईडी का उपयोग करती है'
  7. अपने आवेदन में दिए गए कोड को लागू करें

मैं जो देख सकता हूं, IFRAME कार्यान्वयन के साथ जैसा बटन है, वह किसी पॉप-अप को ट्रिगर नहीं करता है। यह बस एक बटन की तरह काम करता है। यह मेरा वांछित परिणाम था।

सौभाग्य।


यदि आपको ईवेंट श्रोता की आवश्यकता नहीं है, तो यह सबसे अच्छा आधिकारिक उत्तर है। धन्यवाद दोस्त !!
याहल

1

यहाँ कोड को ट्विटर और लिंक्डइन के साथ बस एक मानक बटन के रूप में काम करने के लिए कोड है। आशा करता हूँ की ये काम करेगा।

<!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>

अच्छा, यह सबसे अच्छा समाधान था जिसे मैंने पृष्ठ से आज़माया। धन्यवाद AGR @ @ राफेल
स्टुअर्ट

1

चलो यह एक कोशिश:

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

जैसा कि मैंने ठीक किया है, टिप्पणी पॉपअप अक्षम हो जाएगा जब:

  1. चेहरे दिखाएं: -> इसे अनचेक करें
  2. कोड प्राप्त करें: -> IFRAME विकल्प चुनें

1

यदि आप नए एचटीएमएल 5 बटन का उपयोग करते हैं, और आपको इसे फेसबुक के द्वारा सुझाए गए संगत और अनुकूल होना चाहिए, तो यह आसान है, अन्य लोगों ने जो कहा है, उससे दूर जा रहे हैं:

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

दूसरा वर्ग AddThis प्लगइन का उपयोग करने वालों के लिए एक बोनस है।


0

ऊपर उल्लिखित ऊंचाई के विकल्प का उपयोग तब नहीं किया जाना चाहिए जब show-faces=true। अन्यथा, यह चेहरों को छिपा देगा।


0

मेरे मामले में (XFBML संस्करण के साथ) मैंने इसे इस टैग में जोड़ा है:

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

तो अंतिम परिणाम है:

<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>

यह टिप्पणी पॉपअप को सही ढंग से छिपा रहा है।


0

कमेंट बॉक्स का काम छुपाना लेकिन समस्या पैदा कर सकता है अगर आपके पास कमेंट फ़्लायआउट बॉक्स के पीछे क्लिक करने योग्य तत्व है।

आपको इसे छुपाना होगा और इसे DOM पोस्ट से हटाना होगा।

यहाँ टिप्पणी बॉक्स छिपाने के लिए सीएसएस है:

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

यहाँ डोम तत्व को हटाने का JQuery तरीका है:

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

यहां कॉलबैक से प्रदान किए गए विजेट का उपयोग करके शुद्ध जावास्क्रिप्ट तरीका है:

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

किसी अन्य डोमेन पर iframed सामग्री के लिए मुझे css नियम कैसे बनाने चाहिए? अकेले css क्लासेस दें, जिनके नाम अगले महीने अलग होंगे?
अमलगोविनस

0

यदि आप केवल समान बटन दिखाना चाहते हैं, तो आप कुछ इस तरह की कोशिश कर सकते हैं

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>

सीएसएस:

.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

छिपा हुआ करने के लिए अतिप्रवाह सेटिंग मदद कर सकता है। अपनी मुख्य css फ़ाइल में यह करें ।।

#fb_button{
overflow:hidden;
}

0

कैसे के बारे में बस iframe है कि बटन की तरह बटन के समान आकार होता है:

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

बस।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.