2012-02-22 40 views
0

我是Facebook應用開發新手。以下是我的HTML和腳本代碼來爲Facebook用戶檢索訪問令牌。Facebook登錄認證iFrame在Safari瀏覽器中未正確加載

我有一個複選框,並選擇複選框,我需要加載Facebook登錄身份驗證表單。

<html xmlns:fb="https://www.facebook.com/2008/fbml"> 
<body> 
    <table> 
     <tr> 
      <td> 
       <input type="checkbox" value="Facebook" name="facebook" id="facebook" onclick="checkFacebookLoginCredentials(this,'fb')"/> 
       <div id="fb-root"></div> 
      </td> 
     </tr> 
    </table> 
</body> 

<script type="text/javascript"> 
    var userFBAccessToken=""; 

    function checkFacebookLoginCredentials(field, accountType) 
    { 
     loadFBAuthenticationWindow();  //Function to load the facebook login authentication window 
    } 

    function loadFBAuthenticationWindow() 
    { 
     window.fbAsyncInit = function() 
     { 
      FB.init({ 
       appId  : 'MY_APP_ID', // App ID 
       status  : true, // check login status 
       cookie  : true, // enable cookies to allow the server to access the session 
       xfbml  : true, // parse XFBML 
       oauth : true 
      }); 

      FB.login(function(response) 
      { 
        if (response.authResponse) 
        { 
        console.log('Welcome! Fetching your Facebook information....'); 
        userFBAccessToken = response.authResponse.accessToken; 
        console.log('userFBAccessToken: ' + userFBAccessToken); 
        FB.api('/me', function(response) 
        { 
         console.log('Good to see you, ' + response.name + '.'); 
         FB.logout(function(response) { 
          console.log('Logged out.'); 
         }); 
        }); 
        } else { 
        console.log('User cancelled login or did not fully authorize.'); 
        } 
      }, {scope: 'user_activities,user_notes,user_photos,user_videos,user_status,offline_access'}); 
     }; 

     // Load the SDK Asynchronously 
     (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> 

</html> 

當我嘗試加載上面的HTML,我可以看到的iFrame(Facebook登錄認證形式)在Chrome和Firefox瀏覽器加載正確。

但是當我嘗試在SAFARI中執行時,iFrame未加載。

任何人都可以說,我已經錯過了上面的代碼?任何建議,請..

回答

0

這聽起來像一個錯誤,尤其是如果這是在一個瀏覽器,但不是其他。請bugtracker中的文件這樣的:http://developers.facebook.com/bugs

+0

號。在調查中,我覺得這個問題是由於我的腳本的一些錯誤的位置。沒有面臨這個問題。所以任何人都可以在上面的腳本中提示我有什麼錯誤? – user1223367 2012-02-22 11:00:31

+0

這是一個測試嗎? – DMCS 2012-02-23 14:29:17

相關問題