0

複数のページを持つFacebookタブがあります。最初のページではすべてが正常に機能し、iframe は完全にサイズ変更されますが、コンテンツが最初のページよりも少ない 2 ページ目では、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 に答える