在俄罗斯社交网络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高度当前已硬编码为1200。
可以,但是我想使用#fb-root元素的高度/位置。
有人请问,这里可以使用哪个JavaScript或CSS函数-如果我不想只为一个$(#fb-root).offset()]调用添加jQuery吗?
我也查看了他们的库http://api.odnoklassniki.ru//js/fapi.js,但其中不包含此类功能。
UPDATE
我在上面的源代码中添加了两个警报调用,但它们只打印出来
clientHeight 0 offsetHeight 0
UPDATE
下面的代码似乎现在可以在Google Chrome和Mozilla Firefox中对我的iframe-app很好地运行,无论我添加多少测试它。但是,使用Internet Explorer时,无法调整窗口大小,并且警报在Google Chrome中显示top = 1107而不是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>
在俄罗斯社交网络Ok.ru的一个小型iframe应用程序中,我使用以下调用来调整iframe的大小:
Quirksmode具有一个JavaScript教程/功能,它显示了如何查找元素here的坐标
如果document.getElementById("fb-root").clientHeight
返回0,则肯定意味着您的“ fb-root” div不显示或仍然为空。
使用offsetHeight