纯JavaScript函数类似于jQuery.offset()?
作者:互联网
我在俄罗斯社交网络Odnoklassniki.ru有a small 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("XXX " + document.getElementById("fb-root").clientHeight);
alert("XXX " + 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?
我也看了他们的图书馆http://api.odnoklassniki.ru//js/fapi.js,但它不包括这样的功能.
UPDATE
我在上面的源代码中添加了两个警报调用,但它们只打印“XXX 0”.
UPDATE
以下代码似乎适用于我的Google Chrome和Mozilla Firefox中的iframe应用程序,无论我添加了多少用于测试它.但是使用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>
谢谢!
亚历克斯
解决方法:
Quirksmode有一个JavaScript教程/函数,显示如何查找元素here的坐标
获得坐标后,可以使用iframe的offsetHeight属性读取其高度.
标签:javascript,iframe,social-networking 来源: https://codeday.me/bug/20190614/1237057.html