1

fbAsyncInit コールバック関数内の FB オブジェクトはまだ定義されていません。これの目的は、FB がロードされて を使用して初期化する準備ができたらコールバックすることではありませんFB.init({})か?

に別の非同期関数を追加するsetTimeoutと、FB オブジェクトが読み込まれます。

このjsFiddleを参照してください。

明らかに私は何かが欠けています。誰かが明確にすることができますか?

4

2 に答える 2

3

これは恥ずかしいです。欠落しているセミコロンを見つけることができますか?ありがとうJSLint ;

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

<script>
    window.fbAsyncInit = function () {
    debugger;
       if (typeof FB !== "undefined") alert('FB loaded now');
       else alert('FB not loaded');

        //This works
        setTimeout(function () { 
                if (typeof FB !== "undefined") alert('FB loaded now');
               else alert('FB still not loaded');
            },100);
    }

    (function () {
        debugger;
        var e = document.createElement('script');
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    } ());

</script>
于 2013-01-30T03:04:33.630 に答える
2
<div id="fb-root"></div>

<script>
window.fbAsyncInit = function () 
{
   debugger;
   if (typeof FB !== "undefined") alert('FB loaded now');
   else alert('FB not loaded');

    //This works
    setTimeout(function () 
    { 
        if (typeof FB !== "undefined") 
            alert('FB loaded now');
        else 
            alert('FB still not loaded');
     },100);

};   // --> SEMI-COLON HERE 

(function () {
    debugger;
    var e = document.createElement('script');
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
} ());

</script>
于 2013-01-30T06:55:05.240 に答える