Javascript FB.Canvas.setSize();don';换页时不工作

Javascript FB.Canvas.setSize();don';换页时不工作,javascript,facebook,iframe,tabs,facebook-page,Javascript,Facebook,Iframe,Tabs,Facebook Page,我有一个带有多个页面的facebook标签。在第一页上一切正常,iframe的大小调整得很好,但在第二页上,如果内容小于第一页,iframe将不会移动,而是保持与第一页相同的高度。起初它也停留在页面底部,但是FB.Canvas.scrollTo(0,0);修正了。我试着用一个特定的大小调用setSize,但没有效果。在这里也尝试了大部分解决方案,但没有任何效果 这是我在关闭主体之前在每页上调用的代码 <script type="text/javascript"> window.fbA

我有一个带有多个页面的facebook标签。在第一页上一切正常,iframe的大小调整得很好,但在第二页上,如果内容小于第一页,iframe将不会移动,而是保持与第一页相同的高度。起初它也停留在页面底部,但是FB.Canvas.scrollTo(0,0);修正了。我试着用一个特定的大小调用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);
}());

window.fbAsyninit=函数(){
FB._https=true;
FB.init({
appId:“#appId#”,
cookie:true,//启用cookie以允许服务器访问会话
oauth:true,//oauth 2.0
状态:true,//检查登录状态
xfbml:true//解析xfbml
});
FB.getLoginStatus(函数(响应){
//用户已连接,但我们无法访问他的省份
if(type of response.status=='string'&&response.status=='connected'){
$('erreurProvinceFB').css('display','block');
$('.fb_iframe_widget').css('display','none');
$('.sepOU').html('');
}
});
FB.Event.subscribe('auth.login',函数(响应){
$('signed_request').val(response['authResponse']['signedRequest']);
$('loginSignedRequest')。提交();
});
FB.Canvas.setSize({宽度:520,高度:500});
//FB.Canvas.setSize();
FB.Canvas.setAutoGrow();
FB.Canvas.scrollTo(0,0);
$(“body”).css(“溢出”、“隐藏”);
};
(功能(){
var e=document.createElement('script');
e、 src=document.location.protocol+'//connect.facebook.net/en_US/all.js';
e、 异步=真;
document.getElementById('fb-root').appendChild(e);
}());

到目前为止,这种组合对我来说效果很好:

<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>

...
window.fbAsyninit=函数(){
FB.init({
appId:“*ID*”,//应用程序ID
channelUrl:'/channel.php',//通道文件
状态:false,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
如果(window.location.protocol==“https:”){
FB._https=true;
}
FB.Canvas.setAutoGrow();
};

确保你的FB应用程序ID正确。

我刚刚有了FB.Canvas.setAutoGrow();一开始,这对我也不起作用。。我不知道为什么:(@Jean FrançoisMorin)你能给我们一个链接到你的测试Facebook标签吗?