display:none
コンテナの 1 つがページの読み込み時に表示され、後で で表示される場合、いいね ボタン プラグインは表示されませんdisplay:block
。
Firefox (私のバージョン 15.0.1) のみで問題が検出されました。
私に何ができる?
display:none
コンテナの 1 つがページの読み込み時に表示され、後で で表示される場合、いいね ボタン プラグインは表示されませんdisplay:block
。
Firefox (私のバージョン 15.0.1) のみで問題が検出されました。
私に何ができる?
要素を表示するときは、プラグインのようなfbをdomに追加する必要があります
IE
<div id="showfb">mouseoverme</div>
<div style="display:none" id="facebutton"></div>
<script>
var fbbutton = document.getElementById("facebutton");
document.getElementById("showfb").onmouseover = function(){
// first visible
fbbutton.style.display='block';
// then add fb html5
fbbutton.innerHTML = '<div class="fb-like" ......... ></div>';
};
</script>
別の方法として、
width:0;height:0;overflow:hidden
それ以外の
display:none
と
width:auto;height:auto;overflow:visible
それ以外の
display:block
このバグ (FB または FF) の理由はわかりませんが、デフォルトで自分の要素を FF でのみ表示することでその問題を解決しました。
@-moz-document url-prefix() {#exe-article-social-tools { display: block; }}
それを理解するのに丸一日かかりましたが、「テストユーザー」でFacebookにログインすると、いいねボタンが見えなくなります. 私の場合、Firefox では常にテスト ユーザーでログインしていましたが、Chrome では通常の Facebook ユーザーでログアウト/ログインしていました (当初、これはブラウザーの問題だと思いました)。
ただし、解決策は、テスト ユーザーからログオフするのと同じくらい簡単でした。
FB ドキュメントでは、すべての機能がテスト ユーザーに対して有効になっているわけではないと指定されていますが (いいね! ボタンはそれらの機能の 1 つです)、少なくともレンダリングされると思いました。とにかく、これが誰かに役立つことを願っています。
fb-like
ボタンが隠されているページに、さまざまな非表示の div がいくつかありました。div の 1 つが表示されている場合、そのfb-like
中にボタンは表示されません。私にとってうまくいった解決策は、目に見えない div が明らかになるたびに FB.init を手動で再起動することです。FB は、window オブジェクトに追加されるグローバル関数ですhttp://connect.facebook.net/en_US/all.js
。したがって、このリモート スクリプトは DOM にアタッチされているため、次のようなものを実行できます。
FB.init({
appId : '346094915460000', // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
https://developers.facebook.com/docs/reference/javascript/
fb-root タグ
JavaScript SDK では、fb-root 要素がページに存在する必要があります。fb-root 要素は、display: none または visibility: hidden を使用して非表示にしないでください。非表示にすると、SDK の一部が Internet Explorer で正しく機能しなくなります。