2012-10-25 42 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选项卡吗? –