0

我想知道如何在頁面加載時做到這一點。它正在與「點擊」,即<a href="#" onClick="FB.logout()">Logout</a> < - 工程Facebook JS SDK註銷頁面加載

,但如果我有這樣的事情做:

// INIT (file 1) 
$ -> 
    $('body').prepend('<div id="fb-root"></div>') 

    $.ajax 
     url: "#{window.location.protocol}//connect.facebook.net/en_US/all.js" 
     dataType: 'script' 
     cache: true 

    window.fbAsyncInit = -> 
     FB.init(appId: 'xxxxxxxxxxxx', cookie: true) 

     $('#facebook_sign_in').click (e) -> 
      e.preventDefault() 
      FB.login (response) -> 
      window.location = '/auth/facebook/callback' if response.authResponse 


    // FILE 2 

    <script src="file1.js" type="text/javascript"></script> 
    $(document).ready(function(){ 
     FB.logout(); <- Nothing happens 
    }); 

調試器說,這FB變量沒有定義。但是,如果onClick像魅力一樣起作用,它究竟會不明確呢?

那麼,它有可能嗎?

+0

似乎當FB.logout()被調用的時候FB.init()還沒有被初始化。 –

+0

任何修復的嘗試? :( – Dmitri

回答

0

看來,當你使用FB API還沒有加載。

使用$.ajax()加載FB all.js腳本可能是原因,請爲其添加回調函數,或者將腳本加載到html頭部。

+0

我的腳本實際上是位於頭部,我甚至試圖讓FB全局(window.FB = FB或window.FB.init),但現在一切都是「未定義」 – Dmitri

+0

我不是指你的腳本,我的意思是加載FB的腳本:http://connect.facebook.net/en_US/all.js – 2012-12-17 15:34:57