如何从Facebook iFrame应用程序中删除滚动条

Vin*_*rma 35 facebook

我创建了一个facebook iframe应用程序,并在Facebook应用程序设置页面中将尺寸设置为自动调整大小,但在IE和谷歌浏览器的底部仍然显示水平滚动条.在Firefox中正常工作.有解决方案吗

Zap*_*ree 58

它在这里解释了如何做到这一点:http: //clockworkcoder.blogspot.com/2011/02/how-to-removing-facebook-application-i.html 基本上你应该使用

window.fbAsyncInit = function() {
    FB.Canvas.setAutoGrow();
};
Run Code Online (Sandbox Code Playgroud)

另外请确保您的html和body标签设置为overflow:hidden不会让那些简单显示的滚动条非常烦人

<html xmlns="http://www.w3.org/1999/xhtml" style="overflow: hidden">
    <head>
  <!-- Header stuff -->
 </head>
 <body style="overflow: hidden">
Run Code Online (Sandbox Code Playgroud)

  • 你真的不想在主体上添加"overflow:hidden",因为它也会禁用垂直滚动.有关正确的解决方案,请参见http://stackoverflow.com/a/9809635/253704. (2认同)

Mik*_*ola 12

您还需要启动计时器以调用自动调整代码.在你的应用程序HTML中:

window.fbAsyncInit = function() {
    FB.Canvas.setAutoResize();
};
Run Code Online (Sandbox Code Playgroud)

上面的代码将每100毫秒检查一次内容维度.如果要使用不同的时序,可以将毫秒作为变量传递:

window.fbAsyncInit = function() {
    FB.Canvas.setAutoResize(50);
};
Run Code Online (Sandbox Code Playgroud)

如果页面加载后内容大小没有改变,您可以通过手动更改内容大小来节省CPU周期:

window.fbAsyncInit = function() {
    FB.Canvas.setSize();
}
Run Code Online (Sandbox Code Playgroud)

您甚至可以将所需大小作为参数传递

window.fbAsyncInit = function() {
    FB.Canvas.setSize({ width: 520, height: 600 });
}
Run Code Online (Sandbox Code Playgroud)