0

ページに XFBML コメント ボックスを実装しようとしています。Firefox と Chrome では機能しますが、Internet Explorer 8 では散発的にしか機能しません。

ページがFB.XFBML.parse('fb-stuff');. XFBML を解析する前に、Facebook Connect スクリプトの読み込みが完了したかどうかを確認する必要がありますか?

<script type="text/javascript">
    window.fbAsyncInit = function() {
        FB.init({
            appId  : '117378991625799',
            status : false, // check login status
            cookie : false, // enable cookies to allow the server to access the session
            xfbml  : true  // parse XFBML
        });
    };
    (function() {
        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);
        FB.XFBML.parse('fb-stuff');
    }());
</script>
4

1 に答える 1

2

fb.xfbml.parse を自分で呼び出す必要はありません。fbAsyncInit で facebook init にそのように指示しているためです。これは主に、初期化後に新しい facebook 要素をページに追加し、それらを解析してレンダリングしたい場合に役立ちます。

はい、JavaScript ライブラリがロードされるまで待つ必要があります。それが fbAsyncInit のすべてです。connect ライブラリのスクリプト要素を作成し、それを無名関数の dom に挿入しますが、ブラウザーがコードを読み込んで評価するのに少し時間がかかるため、FB はすぐには利用できません。スクリプトが読み込まれると (そして FB オブジェクトが利用可能になると)、window.fbAsyncInit を実行しようとします。その後、必要なことは何でも実行できます。

于 2010-10-28T08:50:56.400 に答える