Facebook div空

时间:2013-04-15 05:14:30

标签: javascript facebook facebook-graph-api

html:

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

JS:

$(document).ready(function(){
    window.fbAsyncInit = function() {
        FB.init();

        FB.getLoginStatus(function(response){
            runFbInitCriticalCode(); 
            console.log(response);
        });
    };

    (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/ru_RU/all.js#xfbml=1";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
});

代码执行后,div填充了iframe和其他facebook标签,但它是空的。我在页面中看不到任何内容,那么问题是什么呢?

2 个答案:

答案 0 :(得分:1)

facebook-jssdk替换为给定代码中第二行最后一行的js文件中的fb-root

(document, 'script', 'fb-root'));

答案 1 :(得分:0)

试试这段代码:

<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
    if(typeof(FB) != 'undefined') {
        FB.init({
            appId: facebookAppId, xfbml: true, status: true, cookie: true, oauth: true
        });
    }
};
(function() {
    var e = document.createElement('script');
    e.async = true;
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
}());
</script>

在我的情况下,facebookAppId是一个带有Facebook应用程序ID的JavaScript变量。您需要创建一个here。只有在此之后,您才能利用他们的JS API。

更多信息here