【发布时间】:2012-06-02 15:05:12
【问题描述】:
我正在创建要加载到 iframe 中的 Facebook 画布应用程序。
内容的高度可能会因此处加载的动态数据而有所不同,并且无法预先设置。画布应自动调整大小以适应内容。我需要摆脱所有现代浏览器中 iframe 中的垂直滚动条。
我在应用程序的高级设置中设置了“画布高度:固定为 800px”,并使用推荐的 FB.Canvas.setSize() 解决方案:
<body>
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function () {
FB.init({
appId: 'NNNN', // My App ID is placed here
status: true,
cookie: true,
xfbml: true
});
FB.Canvas.setSize();
FB.Canvas.setAutoGrow(7);
};
function sizeChangeCallback() {
FB.Canvas.setSize();
}
// Load the SDK Asynchronously
(function (d) {
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) { return; }
js = d.createElement('script'); js.id = id; js.async = true;
js.src = d.location.protocol + "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
} (document));
...
</script>
...
</body>
它在 Firefox、MSIE 9 和 Opera 中运行良好。但它不适用于 Windows 上的 WebKit 浏览器:Safari 和 Chrome。
Safari 为画布 iframe 显示以下代码:
<iframe class="canvas_iframe_util noresize" frameborder="0" scrolling="no" id="iframe_canvas" name="iframe_canvas" src='javascript:""' height="800" style="height: 800px; overflow-y: hidden; "></iframe>
我做错了什么?是否可以同时在 Firefox、MSIE、Opera、Safari 和 Chrome 中运行?
【问题讨论】:
标签: safari scrollbar facebook-javascript-sdk facebook-iframe facebook-canvas