首页 > 解决方案 > Facebook 应用程序画布 setSize 和 setAutoGrow 在登录时不再工作

问题描述

我们的 FB 选项卡应用程序画布不再像登录时那样自动调整高度。注销时点击应用程序选项卡会按预期自动调整高度。

我们FB.Canvas.setSize()在每次页面加载时使用,因此页面更改将触发自动调整大小。我也试过了FB.Canvas.setAutoGrow()。登录时都失败了。

几年前我尝试了一个版本的 Chrome,同样的问题,所以最近似乎没有浏览器安全性变化。我注意到经过身份验证的用户与未经身份验证的用户相比,前者将应用程序加载到了一个额外的 iframe 层中。

根据文档,我们当前的 800 固定高度设置应该至少允许 setAutoGrow 起作用。我可以在 devtools 中成功调用 setSize,但是登录时大小没有影响,只有在注销时。

这是代码的表示。我添加了控制台日志调用并确认 fbAsyncInit 代码正在运行。

目前有任何解决方法或已知问题吗?

<script>
    window.fbAsyncInit = function() {
        FB.init({
            appId : 'xxxxxxxxx',
            status : true,
            cookie : true,
            xfbml : true,
            oauth: true
        });
        
        FB.Canvas.setSize();
        FB.Canvas.scrollTo(0,0);

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

标签: facebookfacebook-apps

解决方案


推荐阅读