0

この非同期コードはヘッダーに挿入され、FB のようなボタンを表示できます。

<script type="text/javascript">(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.async=true; js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=XXXXXXXXXXXXX";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

このコードは、FB のようなボタンが表示されている場所に配置されます (Google アナリティクス トラッキング コードと一緒に)

<div id="fb-root"></div>
<script type="text/javascript">_ga.trackFacebook();</script>
<div class="fb-like" data-width="150" data-layout="button_count" data-show-faces="false" data-send="false"></div>

すべてがうまく機能しますが、ページの下部にFBログインボタン(ページへのリンク)がある単一の(実際にはゲストブック)ページで動作します。FB ログイン ボタンは、Facebook SDK for PHP を使用します。

if (!$user): ?>
   <div id="fb-root" style="display:none"></div>
    <script language="javascript" type="text/javascript"> //modifica per validazione w3c
//<![CDATA[
document.write('<fb:login-button size="medium" scope="email">Login with/Accedi con Facebook</fb:login-button>');
//]]>
    </script>

削除しないと表示されません

<div id="fb-root"></div>

FBいいねボタンのコードから。問題は、FB ログイン ボタンにもその fb-root div が必要なことです。

削除するらしい

<div id="fb-root"></div>

FB のようなボタンからボタン自体に害を及ぼすことはありません。いいねボタンをクリックしてコメントを追加することもできます。また、FBログインボタンが再び機能します。何故ですか?fb-root div は FB のようなボタンには役に立ちませんか? (実際には、スタックオーバーフロー状態に関するかなりの数の回答が反対です)

FB のようなボタンから fb-root div を削除することなく、FB ログイン ボタンを適切に機能させるにはどうすればよいですか? ヒントはありますか?

前もって感謝します

4

1 に答える 1

0

質問がされてから大きく変わったかどうかはわかりませんが、同じ問題があり、FB.init設定を使用して解決しました: xfbml:true 。

window.fbAsyncInit = function() {
  FB.init({
    appId      : 'your-app-id',
    status     : true,
    cookie     : true,
    xfbml      : true  // if 'false', Login button won't show.
  });
...
};

お役に立てれば!

于 2014-02-26T20:47:05.397 に答える