ฉันต้องการปิดใช้งานช่องแสดงความคิดเห็นที่ปรากฏขึ้นเมื่อผู้ใช้คลิกปุ่ม Facebook (fbml) Like ที่ฉันวางไว้บนไซต์ของฉัน เป็นไปได้ไหมที่จะทำ? ฉันไม่พบรายละเอียดใด ๆ ในเอกสารนี้
ฉันต้องการปิดใช้งานช่องแสดงความคิดเห็นที่ปรากฏขึ้นเมื่อผู้ใช้คลิกปุ่ม Facebook (fbml) Like ที่ฉันวางไว้บนไซต์ของฉัน เป็นไปได้ไหมที่จะทำ? ฉันไม่พบรายละเอียดใด ๆ ในเอกสารนี้
คำตอบ:
การแก้ไขที่ง่ายที่สุดในการซ่อนช่องแสดงความคิดเห็นหลังจาก Facebook Like (เวอร์ชัน XFBML ไม่ใช่ iframe one) เป็นไปตามที่กำหนด:
.fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr {
display: none !important;
}
ใส่สไตล์ CSS ในไฟล์ CSS ของคุณและดูความมหัศจรรย์มันใช้งานได้ :)
การใส่ iframe ใน div ขนาดที่เหมาะสมโดยตั้ง overflow เป็น hidden จะช่วยแก้ปัญหานี้ได้ - แม้ว่านี่จะเป็นเพียงการซ่อนปัญหาเท่านั้น
ฉันใช้สิ่งนี้ใน CSS ของฉัน:
.fb-like{
height: 20px;
overflow: hidden;
}
และแสดงปุ่ม Facebook ด้วยโค้ด HTML5 ปกติดังนี้:
<div class="fb-like" data-layout="button_count" data-show-faces="false"></div>
ก -
<div>
ขนาดจะยังคงเท่าเดิม แต่จะแสดงช่องป้อนข้อความจากนั้นกดแท็บและปุ่มปิดและโพสต์จะปรากฏให้เห็น . ไม่ดี. ฉันกำลังทดสอบกับ Firefox
สิ่งที่ฉันทำคือใส่ div สำหรับปุ่ม "like" ดังนี้:
<div class="fb_like">
<fb:like href="yourlink" send="false" layout="button_count" width="90" show_faces="false" font="arial"></fb:like>
</div>
และนี่คือ CSS:
.fb_like {
overflow: hidden;
width: 90px;
}
ฉันชอบวิธีแก้ปัญหาของ Mohammed Arif และฉันเลือกเป็นคำตอบที่ดีที่สุด แต่ในกรณีที่ FB เปลี่ยนคลาสแล้วด้านล่างจะใช้ได้เสมอ ..
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" คือรหัส div "ของคุณ" ซึ่งถือรหัสปุ่ม like ของ facebook
แก้ปัญหาการทำความสะอาดที่ทำงาน ( ณพฤษภาคม 2014 ) -
ก่อนอื่นตรวจสอบให้แน่ใจว่า<div class="fb-like"
มีคุณสมบัติโครงร่างข้อมูลเป็นปุ่ม -
<div class="fb-like" data-layout="button"........></div>
เพียงแค่เพิ่ม CSS นี้
.fb-like{
overflow: hidden !important;
}
แค่นั้นแหละ!
จะไม่เป็น Debby Downer ที่นี่ แต่การซ่อนช่องแสดงความคิดเห็นไม่ได้ละเมิดนโยบายของ Facebook หรือไม่?
IV. จุดรวมแอปพลิเคชัน d. คุณต้องไม่ปิดบังหรือครอบคลุมองค์ประกอบของปลั๊กอินโซเชียลของเราเช่นปุ่มไลค์หรือปลั๊กอินกล่องไลค์
ฉันไม่สามารถรับdisplay: none
ตัวเลือกให้ทำงานกับปุ่มเวอร์ชัน HTML 5 ได้ แต่ฉันกำหนดเป้าหมาย div ว่าปุ่ม like ถูกสร้างขึ้นและตั้งค่า overflow เป็น hidden
การทิ้งสิ่งต่อไปนี้ในไฟล์ css หลักของฉันเป็นการหลอกลวง:
#fb_button{
overflow:hidden;
}
เห็นด้วยกับ BrynJ ทางออกที่ดีที่สุดในปัจจุบันคือการใส่ปุ่ม like ในคอนเทนเนอร์ div สูง 20px และตั้งค่า overflow เป็น hidden (ฉันอ่านที่ไหนสักแห่งที่ 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>
หากปุ่มไลค์หายไปเมื่อคุณคลิก "like" และคุณมีคอนเทนเนอร์ div เพื่อซ่อนป๊อปอัปข้อคิดเห็นให้ใช้วิธีแก้ไขปัญหาต่อไปนี้:
สร้างคอนเทนเนอร์ div เพื่อวางปุ่มเหมือน fb และให้ css ต่อไปนี้:
.fb_like {
overflow: hidden;
width: 90px;
}
.fb_like iframe {
left: 0 !important;
}
ฉันจัดการเพื่อหลีกเลี่ยงปัญหาป๊อปอัพความคิดเห็นของปุ่มชอบ Facebook โดยใช้เวอร์ชัน IFRAME แทน ฉันทำตามขั้นตอนต่อไปนี้:
จากสิ่งที่ฉันเห็นปุ่ม like ที่ใช้ IFRAME ไม่เรียกป๊อปอัปใด ๆ มันทำหน้าที่เป็นปุ่มไลค์ นี่คือผลลัพธ์ที่ฉันต้องการ
โชคดี.
นี่คือรหัสเพื่อให้ปุ่ม Like ทำงานเป็นเพียงปุ่มมาตรฐานพร้อมกับ Twitter และ Linkedin หวังว่าจะช่วยได้
<!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&send=false&layout=button_count&width=45&show_faces=false&font&colorscheme=light&action=like&height=21&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>
มาลองอันนี้:
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();
});
ตามที่ฉันได้ทำตกลงป๊อปอัปความคิดเห็นจะถูกปิดใช้งานเมื่อ:
หากคุณใช้ปุ่ม HTML5 ที่ใหม่กว่าและคุณควรจะใช้งานร่วมกันได้และแนะนำโดย Facebook มันเป็นเรื่องง่ายที่จะหลีกหนีจากสิ่งที่คนอื่นพูด:
.fb-like, .addthis_button_facebook_like
height: 25px
overflow: hidden
คลาสที่สองเป็นโบนัสสำหรับผู้ที่ใช้ปลั๊กอิน AddThis
show-faces=true
ตัวเลือกล้นความสูงดังกล่าวข้างต้นไม่ควรใช้เมื่อ มิฉะนั้นจะปิดบังใบหน้า
ในกรณีของฉัน (ด้วยเวอร์ชัน 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>
มันซ่อนป๊อปอัปความคิดเห็นอย่างถูกต้อง
การซ่อนช่องแสดงความคิดเห็นจะใช้งานได้ แต่อาจสร้างปัญหาได้หากคุณมีองค์ประกอบที่คลิกได้หลังกล่องแสดงความคิดเห็น
คุณต้องซ่อนและลบออกจากโพสต์ DOM เช่น
นี่คือ CSS สำหรับซ่อนช่องแสดงความคิดเห็น:
.fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr {
display: none !important;
}
นี่คือวิธี JQuery ในการลบองค์ประกอบ DOM:
FB.Event.subscribe('edge.create', function (href, widget) {
$('.fb_edge_comment_widget.fb_iframe_widget').remove()
});
นี่คือวิธี javascript บริสุทธิ์โดยใช้วิดเจ็ตที่ให้มาจากการโทรกลับ:
FB.Event.subscribe('edge.create', function (href, widget) {
widget._commentWidgetNode.parentNode.removeChild(widget._commentWidgetNode);
});
หากคุณต้องการแสดงเฉพาะปุ่มไลค์คุณอาจลองทำสิ่งนี้
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;
}
การตั้งค่า overflow เป็น hidden อาจช่วยได้ ทำในไฟล์ css หลัก ..
#fb_button{
overflow:hidden;
}
วิธีทำให้ iframe ที่มีปุ่ม like มีขนาดเท่ากับปุ่ม:
.fb_iframe_widget_lift
{
width: 49px !important;
height: 20px !important;
}
แค่นั้นแหละ.