jquery LOAD(ajax)之后的FB javascript SDK

时间:2011-03-21 02:24:41

标签: jquery fbjs

他的脚本适用于同步请求


HTML HERE


window.fbAsyncInit = function() {
    FB.init({appId: 'XXXXXXXX', status: true, cookie: true, xfbml: true});
        console.log('in');
    FB.getLoginStatus(function(response) {
    console.log(response);
        if (response.session) {
            // logged in and connected user, someone you know
            code here
            }
        } else {
            // no user session available, someone you dont know
            code here
        }    
    });

};

HTML HERE

我最近想要对网站进行调整, 当我创建一个XMLHttpRequest将它附加到页面上时(使用JQuery的加载简写为ajax GET req。)javascript方法FB.getLoginStatus不会被执行。

让我分享控制台结果:

synchronous:  in , response (object)
asynchronous: in

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我遇到的问题就像facebook制作图书馆一样,你不能使用FB.init({});再次,所以我们必须找到一种方法来摧毁它并再次创建它!使用内置函数可能更简单,但这是绝对有效的方法。我已经做了这个购买删除整个FB对象,我会在找到最佳解决方案时回发!

<强>更新 好的就是,找到了内置函数来解析新元素 ...... 解决方案:

FB.XFBML.parse(document.getElementById('idOfElementContainingFBML'));

//你想使用包含xfbml的最少一代父元素来获得最佳性能,在jQuery加载的情况下,它将是这样使用的元素:

$('#result').load('ajax/test.html', function() {
   FB.XFBML.parse(document.getElementById('result'));
});