Facebook页面的iframe高度

Facebook页面的iframe高度,facebook,iframe,Facebook,Iframe,Facebook中iframe页面的最大高度似乎是800px。有什么办法可以改变吗?我见过一些深度超过800px的页面/应用程序,这有一些如何实现的指导。将应用程序设置设置为自动调整大小: 然后调用FB.Canvas.setSize()或FB.setAutoResize()删除仍在显示的滚动条。在iframe内容末尾尝试以下操作: <div id="fb-root"></div> <script type="text/javascript">

Facebook中iframe页面的最大高度似乎是800px。有什么办法可以改变吗?我见过一些深度超过800px的页面/应用程序,这有一些如何实现的指导。将应用程序设置设置为自动调整大小:


然后调用FB.Canvas.setSize()或FB.setAutoResize()删除仍在显示的滚动条。

在iframe内容末尾尝试以下操作:

      <div id="fb-root"></div>
  <script type="text/javascript"> 
   window.fbAsyncInit = function() {

   //Der folgende Code ändert die Grösse des iFrames alle 100ms 
    FB.Canvas.setAutoResize(100);

   };
   (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>

window.fbAsyninit=函数(){
//折叠式编码为100毫秒
FB.Canvas.setAutoResize(100);
};
(功能(){
var e=document.createElement('script');
e、 异步=真;
e、 src=document.location.protocol+
“//connect.facebook.net/en_US/all.js”;
document.getElementById('fb-root').appendChild(e);
}());

安德鲁·斯马特:我可以根据页面应用程序的高度在这里复制您的错误

在我的页面应用中使用@

我使用javascript在页面加载完成后7秒“7000ms”计算内部页面高度,以避免错误。在页面选项卡应用程序的底部,您将看到

加载此页面花费了1.724007秒。W:520 x H:800其中实际iframe的高度为5704px

<iframe name="app_runner_4e581c03cfc387e71622269" id="app_runner_4e581c03cfc387e71622269" style="width: 520px; height: 5704px; " frameborder="0" src="http://static.ak.facebook.com/platform/page_proxy.php?v=4#app_runner_4e581c03cfc387e71622269"></iframe>

无论页面有多长,页面似乎都返回800px作为高度,我认为这是page_proxy.php中的一个错误,一个bug可能值得提交给bugzilla

我用于页面高度的代码:



window.fbAsyninit=函数(){
FB.init({
appId:“APP_ID”,
状态:false,
曲奇:是的,
xfbml:对
});
FB.XFBML.parse();
setSize({宽度:'520px',高度:'1580px'});
FB.Canvas.scrollTo(0,0);
};
(职能(d){
var js,id='facebook jssdk';if(d.getElementById(id)){return;}
js=d.createElement('script');js.id=id;js.async=true;
js.src=“//connect.facebook.net/en_US/all.js”;
d、 getElementsByTagName('head')[0].appendChild(js);
}(文件);

如果页面上画布高度可变,也可以使用Facebook JS SDK和FB.setAutoResize()函数触发调整大小。多亏了OffBySome和Ashwini,您的建议都奏效了。我还需要添加溢出:隐藏;对于我的身体标记,Facebook应用程序的界面不同,他们没有画布类型选项。看起来他们已经更改了它,FB.Canvas.setAutoGrow();现在似乎可以工作了(2012年10月)
<div id="pagestats"></div>
<script>
<!--                               Hide from non-JS browsers
    var scnWid,scnHei;
    if (self.innerHeight) // all except Explorer
    {
        scnWid = self.innerWidth;
        scnHei = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight)
        // Explorer 6 Strict Mode
    {
        scnWid = document.documentElement.clientWidth;
        scnHei = document.documentElement.clientHeight;
    }
    else if (document.body) // other Explorers
    {
        scnWid = document.body.clientWidth;
        scnHei = document.body.clientHeight;
    }
    setTimeout("document.getElementById('pagestats').innerHTML='W:'+scnWid+' x H:'+scnHei+'';",7000);
// -->
</script>
<script type="text/javascript">

window.fbAsyncInit = function() {

    FB.init({
        appId: 'APP_ID',
        status: false,
        cookie: true,
        xfbml: true
    });

    FB.XFBML.parse();

    FB.Canvas.setSize({ width: '520px', height: '1580px' });        

    FB.Canvas.scrollTo(0,0);
  };
  (function(d){
     var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     d.getElementsByTagName('head')[0].appendChild(js);
   }(document));

</script>