0

我有一个包含多个页面的 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);
}());

4

1 回答 1

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 应用程序 ID 正确。

于 2012-10-25T22:41:26.927 回答