ユーザーが自分のサイトに配置したFacebook(fbml)の「いいね」ボタンをクリックしたときにポップアップするコメントボックスを無効にしたいのですが。これは可能ですか?ドキュメントに詳細が見つかりません。
21 に答える
Facebook Like の後にコメント ボックスを非表示にする最も簡単な修正 (XFBML バージョンではなく iframe バージョン) は次のとおりです。
.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を作成することです:
<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 id で、facebook のようなボタン コードを保持しています
動作するクリーナー ソリューション( 2014 年 5 月現在)-
まず、ボタンとしてデータレイアウトプロパティがあることを確認し
<div class="fb-like"
てください-<div class="fb-like" data-layout="button"........></div>
このCSSを追加するだけです-
.fb-like{ overflow: hidden !important; }
それでおしまい!
ここでデビー・ダウナーになるつもりはありませんが、コメント ボックスを非表示にすることは Facebook のポリシーに違反しませんか?
IV. アプリケーション統合ポイント d. いいねボタンやいいねボックス プラグインなど、当社のソーシャル プラグインの要素を覆い隠したり覆ったりしてはなりません。
display: none
ボタンの HTML 5 バージョンで動作するオプションを取得できませんでした。代わりに、いいね ボタン ボタンが作成されている div をターゲットにして、オーバーフローを非表示に設定しました。
メインのcssファイルに次をドロップすると、うまくいきました:
#fb_button{
overflow:hidden;
}
BrynJ に同意します。現在の最善の解決策は、高さ 20 ピクセルの 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 のようなボタンのコメント ポップアップの問題を回避することができました。そのために次の手順を実行しました。
- https://developers.facebook.com/docs/plugins/like-button/にアクセスしてください
- 「URL to Like」を Facebook ページの URL に変更します。
- 必要に応じて、その他のオプション (レイアウト、アクション タイプなど) を選択します。
- 「コードを取得」ボタンを押します
- IFRAME のバージョンを選択
- 「このスクリプトはアプリのアプリ ID を使用します」と表示されている Facebook アプリケーションを選択してください。
- 提供されたコードをアプリケーションに実装する
私が見る限り、IFRAME 実装のいいねボタンはポップアップをトリガーしません。単にいいねボタンとして機能します。これが私の望んだ結果でした。
幸運を。
「いいね」をクリックするといいねボタンが消え、コメントポップアップを非表示にするコンテナ div がある場合は、次の解決策を使用してください。
fb のようなボタンを配置するコンテナ div を作成し、次の css を指定します。
.fb_like {
overflow: hidden;
width: 90px;
}
.fb_like iframe {
left: 0 !important;
}
新しい HTML5 ボタンを使用する場合、それは前方互換性があり、Facebook によって提案されているため、他の人が言ったことから外れるのは簡単です。
.fb-like, .addthis_button_facebook_like
height: 25px
overflow: hidden
2 番目のクラスは、AddThis プラグインを使用している人にとってはボーナスです。
これを試してみましょう:
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();
});
私は大丈夫だったので、コメントポップアップは次の場合に無効になります。
- 顔を表示: -> チェックを外す
- コードを取得: -> 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>
上記のオーバーフロー高さオプションは、の場合は使用しないでくださいshow-faces=true
。それ以外の場合は、顔を非表示にします。
コメント ボックスを非表示にすると機能しますが、コメント フライアウト ボックスの背後にクリック可能な要素がある場合、問題が発生する可能性があります。
それを非表示にして、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()
});
コールバックから提供されたウィジェットを使用する純粋な JavaScript の方法は次のとおりです。
FB.Event.subscribe('edge.create', function (href, widget) {
widget._commentWidgetNode.parentNode.removeChild(widget._commentWidgetNode);
});
いいねボタンを含むiframeをボタンと同じサイズにするのはどうですか:
.fb_iframe_widget_lift
{
width: 49px !important;
height: 20px !important;
}
それでおしまい。
私の場合 (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>
コメントポップアップを正しく隠しています。