我创建了一个在标签的 iFrame 中使用的 facebook 应用程序。
我正在使用 Javascript SDK 的 setAutoGrow 函数使 iFrame 展开直到内容结束。
根据我的观察,setAutoGrow 函数在 IE7 中不起作用,我不知道为什么。所有其他浏览器(包括 IE8 和 9)都可以正常工作。
出于测试目的,我创建了一个 1500 像素高的渐变。
例如,我将发布它在 Chrome 中的样子。如您所见,渐变可以滚动到最后(红色):
现在是 IE7 中发生的事情。iFrame 的默认高度为 800 像素(在应用程序设置中定义)。您可以看到它在“turquoise”处停止,并且 setAutoGrow 函数没有将其扩展到所需的高度(1500px)。
我的 CSS 的重要部分如下所示:
body, html {
overflow: hidden;
margin: 0; padding: 0;
}
#wrapper {
margin: 0 auto;
width: 810px;
}
#content {
background: url(../img/bg.jpg) top left no-repeat;
height: 1500px;
}
这是我在结束 body-tag 之前和 fb-root 标记之后放置的 javascript 片段:
window.fbAsyncInit = function() {
FB.init({
appId : '...',
channelUrl : '...',
status : true,
cookie : true,
xfbml : true
});
FB.Canvas.setAutoGrow();
};
我发现了一个可以追溯到 8 月 1 日的错误报告,该报告已被 FB 关闭: https ://developers.facebook.com/bugs/209607222498543?browse=search_5009002cb69058a73627413
我已阅读并应用了以下主题的提示: Facebook iframe FB.Canvas.setAutoGrow does not auto grow after initial load?
...但似乎没有什么可以解决问题。
有没有人有明显的提示,我监督过的事情,或者这个问题的简单解决方案/解决方法?
当我使用 IE7 DebugBar 时,我注意到它在加载名为“dimension_context.php”的 URL 时出现问题。我会附上截图。