【发布时间】:2011-09-02 15:23:00
【问题描述】:
在俄罗斯社交网络 Ok.ru 的一个小型 iframe-application 中,我使用以下调用来调整 iframe 的大小:
<div id="fb-root"></div>
<script src="http://api.odnoklassniki.ru/js/fapi.js"
type="text/javascript"></script>
<script type="text/javascript">
FAPI.init("http://api.odnoklassniki.ru/", "XXX_YYY",
function() {
alert("clientHeight " + document.getElementById("fb-root").clientHeight);
alert("offsetHeight " + document.getElementById("fb-root").offsetHeight);
FAPI.UI.setWindowSize(720, 1200);
}, function(error){
alert("API initialization failed");
});
</script>
</body>
</html>
即iframe-height 当前被硬编码为 1200。
它工作正常,但我想改用 #fb-root 元素的高度/位置。
有没有人想知道,这里可以使用哪个 JavaScript 或 CSS 函数 - 如果我不想只为一个 $(#fb-root).offset() 包含 jQuery strong> 打电话?
我还查看了他们的库http://api.odnoklassniki.ru//js/fapi.js,但它不包含此类功能。
更新
我在上面的源代码中添加了两个警报调用,但它们只打印
clientHeight 0
offsetHeight 0
更新
以下代码似乎适用于我现在在 Google Chrome 和 Mozilla Firefox 中的 iframe-app,无论我添加了多少
来测试它。但是使用 Internet Explorer 时,它无法调整窗口大小,并且警报显示 top=1107 而不是 Google Chrome 中的 top=1157,因此底部的 html 表格被切断:
... here my flash game + html table with players ...
<br>
<br>
<br>
<br>
<br>
<br>
<div id="fb-root"></div>
<script src="http://api.odnoklassniki.ru/js/fapi.js" type="text/javascript"></script>
<script type="text/javascript">
FAPI.init("http://api.odnoklassniki.ru/", "XXX_YYY",
function() {
var top = findTop(document.getElementById("fb-root"));
FAPI.UI.setWindowSize(720, Math.max(top, 1200));
}, function(error){
alert("API initialization failed");
});
function findTop(obj) {
if(!obj) return 0;
return obj.offsetTop + findTop(obj.offsetParent);
}
</script>
</body>
</html>
【问题讨论】:
-
请不要发布 1.) 需要注册 2.) 是俄语的网址... :)) 这没什么用。
-
Facebook 问题呢?这里有很多,需要注册。
-
但是每个人都在 FB 上,所以如果你想帮助,它并不需要你注册。它当然不是俄语(仅限)。 :)
-
不管是俄罗斯、匈牙利还是美国社交网络。我试图解决 JavaScript/iframe 问题,并在开始和以后提供了足够的信息。如果您在 Stackoverflow 上查看我的其他问题,您会发现,我总是这样做(提供足够的信息和测试用例,并在提出任何问题时回复每条评论)。
标签: javascript iframe social-networking