2012-10-25 76 views
0

我有一個包含多個頁面的Facebook選項卡。在第一頁上,一切正常,iframe的大小已完美調整,但在第二頁上,內容小於第一頁時,iframe不會移動,並保持與第一頁相同的高度。起初,它一直停留在頁面的底部,但FB.Canvas.scrollTo(0,0);固定的。我嘗試調用setSize與特定的大小,沒有任何工作。也嘗試了這裏的大部分解決方案,但沒有任何工作。FB.Canvas.setSize();更改頁面時不工作

這裏是我打電話每一頁上的代碼之前我收身

<script type="text/javascript"> 
window.fbAsyncInit = function() { 
    <cfif structKeyExists(cgi,'https') AND cgi.https IS 'ON'> 
    FB._https = true; 
    </cfif> 
    FB.init({ 
     appId : '<cfoutput>#appId#</cfoutput>', 
     cookie : true, // enable cookies to allow the server to access the session 
     oauth  : true, // OAuth 2.0 
     status : true, // check login status 
     xfbml : true // parse XFBML 
    }); 

    FB.getLoginStatus(function(response) { 
     // user is connected but we don't have access to his province 
     if(typeof response.status == 'string' && response.status == 'connected') { 
      $('#erreurProvinceFB').css('display', 'block'); 
      $('.fb_iframe_widget').css('display', 'none'); 
      $('.sepOU').html('&nbsp;'); 
     } 
    }); 

    FB.Event.subscribe('auth.login', function(response) { 
     <!--- met en post le nouveau signedRequest car l'ancien qui est en session n'est plus valide et que 
     facbook ne renvoie pas un nouveau acces token si le tab est juste rafraichie et non reloader au complet. ---> 
     $('#signed_request').val(response['authResponse']['signedRequest']); 
     $('#loginSignedRequest').submit(); 
    }); 
    FB.Canvas.setSize({ width: 520, height: 500 }); 
    //FB.Canvas.setSize(); 
    FB.Canvas.setAutoGrow(); 
    FB.Canvas.scrollTo(0,0); 
    $("body").css("overflow", "hidden"); 
}; 

(function() { 
    var e = document.createElement('script'); 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    e.async = true; 
    document.getElementById('fb-root').appendChild(e); 
}()); 

回答

0

這種組合已經爲我工作好了這一點:

<body style="overflow: hidden;"> 

... 

<script> 
window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '*ID*', // App ID 
     channelUrl : '/channel.php', // Channel File 
     status  : false, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

    if (window.location.protocol == 'https:') { 
     FB._https = true; 
    } 

    FB.Canvas.setAutoGrow(); 
}; 
</script> 

確保您的FB App ID正確無誤。

+0

我剛纔FB.Canvas.setAutoGrow();在開始時,它也不適用於我..我不知道爲什麼:( – jfmmm

+0

@ Jean-FrançoisMorin你能給我們一個鏈接到你的測試Facebook選項卡嗎? –