2011-01-14 50 views
1

我同時使用XFBML和FBJS我的網站上兩種不同的機制:#XFBML = 1導致問題

  • 的FB:個別條目像標籤
  • 對於Facebook登錄的FB對象與FB連接

我的問題是,當我包括頁上的「all.js」,登錄腳本工作,但是FB:像標籤不起作用。

當我包含「all.js#xfbml = 1」時,fb:like標籤再次工作,但現在我的FB對象未定義,並且我的登錄代碼不起作用。

有什麼我失蹤了嗎?

在此先感謝您提供的任何幫助。

回答

1

您只需要一次包含腳本引用,並在頁面加載時在腳本上調用init。您可以將其用於fb:like按鈕或登錄腳本。

<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({ 
    appId : 'YOUR APP ID', 
    status : true, // check login status 
    cookie : true, // enable cookies to allow the server to access the session 
    xfbml : true // parse XFBML 
    }); 
</script> 

關鍵是將xfbml設置爲true(這是#xfbml = 1的作用)。如果你沒有設置那麼像按鈕不會渲染。

如果你想訂閱的登錄事件只需添加以下腳本FB.init()調用之後:

FB.Event.subscribe('auth.login', function(response) { 
    window.location.reload(); // or something else... 
    }); 

這裏將是你的登錄腳本被解僱,只有當用戶點擊一個鏈接,按鈕等

function doLogin() { 
    FB.login(function(response) { 
    if (response.session) { 
     if (response.perms) { 
     // user is logged in and granted some permissions. 
     // perms is a comma separated list of granted permissions 
     } else { 
     // user is logged in, but did not grant any permissions 
     } 
    } else { 
     // user is not logged in 
    } 
    }, {perms:'read_stream,publish_stream,offline_access'}); 
} 
+0

我_do_只包含一個或另一個,但放入1個版本會打破另一個。 – matthewdunnam 2011-01-21 17:52:18

0

加入這個xmlns設置你的HTML標記

xmlns:fb="http://www.facebook.com/2008/fbml" 

,包括「all.j s「