2011-08-02 52 views
3

我幾次在SO中看到過這個問題。大多數情況下,用戶調用了Facebook js(all.js)兩次或未提供應用程序ID。但我的情況是不同的。我已經包括all.js一次,我也設置了應用程序ID。但是當我點擊登錄按鈕時,我仍然在調用FB.init()之前調用了「FB.login()」調用的錯誤。爲登錄按鈕標記是如下FB.login()在調用FB.init()之前調用

<fb:login-button autologoutlink="true" perms="email,user_birthday,user_about_me,publish_stream"></fb:login-button> 

和JavaScript代碼

<script type="text/javascript"> 
     FB.init({appId: '${section.parameters['facebook.app.id']}', status: true, cookie: true, xfbml: true}); 

     /* All the events registered */ 
     FB.Event.subscribe('auth.login', function(response) { 
      window.location.reload(); 
     }); 
     FB.Event.subscribe('auth.logout', function(response) { 
      // do something with response 
      //logout(); 
     }); 

     function setFacebookStatus(form) { 
      var status = $('#comment-form-body').val(); 
      var params = {}; 
      params['message']= status; 
      params['link'] = '${article.url}'; 
      FB.api('/me/feed', 'post',params, function(response) { 
       if (!response || response.error) { 
       alert('Error occured'); 
       } 
       else { 
       alert('<fmt:message key="comment.form.facebook.success" />'); 
       $("#facebookComment").overlay().close(); 
       form.submit(); 
       } 
      }); 
     } 

    </script> 

我在html頁面的頭部添加all.js。我真的生氣了這個問題。如果你能幫助我,我將非常感激。

編輯

一件事提。有時會起作用,有時會向我顯示警告。說我從另一個標籤登錄到Facebook,然後我從Facebook登出。然後我刷新我的網站頁面,其中有facebook整合。然後我收到警告。主要的問題是有時候它有時候不工作。

+0

當頁面加載可能阻止FB.init被調用時,您是否收到任何Javascript錯誤? – shanethehat

+0

不,我沒有收到任何JavaScript錯誤。還有一件事要提到。有時會起作用,有時會向我顯示警告。說我從另一個標籤登錄到Facebook,然後我從Facebook登出。然後我刷新我的網站頁面,其中有facebook整合。然後我收到警告。主要的問題是有時候它有時候不工作。 –

+0

你能顯示一個到你的頁面的鏈接,或者創建一個展示這個問題的例子嗎? – shanethehat

回答

4

我修改了我的JavaScript,如下所示,現在它工作。

$(function() { 
     window.fbAsyncInit = function() { 
      FB.init({appId: '${section.parameters['facebook.app.id']}', status: true, cookie: true, xfbml: true}); 
     }; 
     $('body').append('<div id="fb-root"></div>'); 
     $.getScript(document.location.protocol + '//connect.facebook.net/en_US/all.js'); 
     }) 

setFacebookStatus功能保持不變。在文檔準備中添加這些腳本可以解決facebook javascript警告和非確定性登錄行爲的問題。我的猜測是,在文檔就緒初始化FB腳本確保按要求的順序執行所有的調用。

+0

某些支架缺失... –

相關問題