사용자가 내 사이트에 배치 한 Facebook (fbml) 좋아요 버튼을 클릭 할 때 나타나는 댓글 상자를 비활성화하고 싶습니다. 이것이 가능합니까? 문서에서 세부 사항을 찾을 수 없습니다.
사용자가 내 사이트에 배치 한 Facebook (fbml) 좋아요 버튼을 클릭 할 때 나타나는 댓글 상자를 비활성화하고 싶습니다. 이것이 가능합니까? 문서에서 세부 사항을 찾을 수 없습니다.
답변:
Facebook 좋아요 (iframe이 아닌 XFBML 버전) 후 댓글 상자를 숨기는 가장 간단한 수정 사항은 다음과 같습니다.
.fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr {
display: none !important;
}
CSS 스타일을 CSS 파일에 넣고 마법을 확인하십시오.
오버플로가 숨김으로 설정된 적절한 크기의 div에 iframe을 배치하면이 문제가 해결되었지만 실제로는 문제를 숨길뿐입니다.
내 CSS에서 이것을 사용합니다.
.fb-like{
height: 20px;
overflow: hidden;
}
다음과 같은 일반 HTML5 코드로 Facebook 버튼을 렌더링합니다.
<div class="fb-like" data-layout="button_count" data-show-faces="false"></div>
gr-
<div>
하면 크기가 그대로 유지되지만 텍스트 입력 상자 가 표시되고 탭을 누르면 닫기 및 게시 버튼이 표시됩니다. . 안좋다. Firefox로 테스트하고있었습니다.
내가 한 일은 다음과 같은 "좋아요"버튼을위한 div를 만드는 것입니다.
<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"는 "YOUR"div id로 facebook like button 코드를 보유합니다.
여기서 Debby Downer가되지는 않지만 댓글 상자를 숨기는 것이 Facebook 정책을 위반하지 않습니까?
IV. 응용 프로그램 통합 지점 d. 좋아요 버튼 또는 좋아요 상자 플러그인과 같은 소셜 플러그인의 요소를 가리거나 가리면 안됩니다.
BrynJ에 동의하면 현재 가장 좋은 해결책은 좋아요 버튼을 20px 높이의 div 컨테이너에 넣고 오버플로를 숨김으로 설정하는 것입니다 (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>
대신 IFRAME 버전을 구현하여 Facebook 좋아요 버튼 댓글 팝업 문제를 피할 수있었습니다. 이를 위해 다음 단계를 수행했습니다.
내가 볼 수 있듯이 IFRAME 구현이있는 좋아요 버튼은 팝업을 트리거하지 않습니다. 단순히 좋아요 버튼으로 작동합니다. 이것이 제가 원하는 결과였습니다.
행운을 빕니다.
다음은 좋아요 버튼이 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 플러그인을 사용하는 사람들에게 보너스입니다.
제 경우에는 (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;
}
다음은 DOM 요소를 제거하는 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);
});
좋아요 버튼 만 표시하려면 다음과 같이 시도해보세요.
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;
}