编程语言
首页 > 编程语言> > 纯JavaScript函数类似于jQuery.offset()?

纯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