1

は、私たちのサイトにFacebookのコメントプラグインを埋め込むていますし、次のようないくつかの理由でコメントプラグインは絶えずロードサテで立ち往生している:それはFacebookの問題や私のコードだ場合Facebookのプラグインは永久にスタックしています - それはFacebookか私のコードですか?

Facebook comment plugin perpetual load

が、私はわからないんだけど。ここで私は右開き<body>タグの後に持っているものです。

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
     FB.init({ appId: '1234567890', cookie: true, oauth: true }); 
    }; 
    (function (d) { 
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
     if (d.getElementById(id)) { return; } 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     ref.parentNode.insertBefore(js, ref); 
    } (document)); 
</script> 

(私の実際のappIDががどこ1234567890がある)

私はこれを持っているFacebookのコメントプラグインを表示したいページで:

<div class="fb-comments" data-href="http://mydomain.com" 
    data-num-posts="2" data-width="580"></div> 

私がこれまで分かっている限り、すべてが機能するはずです。しかし、私はこれに関するFBのバグは何も言及していないし、他のサイトで問題を参照することもありません。だから、それは私のコードだと思いますか?

私もFB開発者サイト上のコードジェネレータによって与えられた正確なコード使用して試してみた:

<div id="fb-root"></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=1234567890"; 
     fjs.parentNode.insertBefore(js, fjs); 
    } (document, 'script', 'facebook-jssdk')); 
</script> 

残念ながら、これはどちらか動作しませんが。

私は正しい方向に向いています。

更新:私はこのフィドル(http://jsfiddle.net/Rw79Q/)に自分のAppIDを配置しようとしましたが、動作します。だから問題を引き起こしているコードに何かがあります。それが何であるか分からず、ここで私のコード全体を共有することはできません。

答えて

1
window.fbAsyncInit = function() { 
    ({ appId: '1234567890', cookie: true, oauth: true }); 
}; 

実際にその機能の本体が引数ではありませんか?関数本体の({ appId: '1234567890', cookie: true, oauth: true });は、オブジェクトリテラルを作成してから何もしません。これは、次の文章と同じです。

window.fbAsyncInit = function() {}; 

これは役に立たないものです。

残りのコードは機能しているようですが、現時点で有効なアプリケーションID /ドメインがありません。それが動作するかどうか、このフィドルでアプリのIDとドメインを削除して、次を参照してください。http://jsfiddle.net/Rw79Q/


をチャット議論から、ページがライブサーバー上にあるように持っているように見える、そうでなければ、「無限ロード」動作を取得。ローカルのfile: URIを使用して動作を再現することができました。うまくいけば、これを生産に押し込むと問題は消えてしまいます。

+0

私はこの例を次のように文書にしています:https://developers.facebook.com/docs/reference/javascript/同じ方法で 'window.fbAsyncInit'を使います。 – TMC

+1

あなたの例には 'FB.init'がありません。 –

+0

元の質問を更新して、 'window.fbAsyncInit'部分(' FB.init'が必要でないことを意味します)を削除しても、それでも解決しないという言及を追加しました。 – TMC

関連する問題