0

我有一个从我的网站加载到页面中的 iframe,我需要根据 iframe 内容的高度将其定位到页面的中心,并且我使用的代码没有任何问题,除了如果内容变小,iframe 内容的高度将永远不会返回低于它的值(如果这有意义的话)。

js 识别内容高度何时增长,但不识别何时缩小。

例如,如果我有一个 400px 高的页面,然后某些内容动态更改为 420px,我的代码将识别它是 420px 高,但如果它更改为 350px,例如,我的代码仍将其视为 420px高。我该如何解决?

代码:

function place()
{
    var w = $(window).width();
    w-=1000;
    w/=2;
    if(w<12)
    w = 12;
    $("#div").css("left",""+w+"px");
    $("#closeDiv").css("left",""+(w-12)+"px");

    var h = $(window).height();
    var ifh = document.getElementById("inner").contentWindow.document.body.scrollHeight;
    document.title = ifh;
    h -= ifh;
    h /= 2;
    if(h < 20)
    h = 20;
    $("#div").css("top",""+h+"px");
    $("#div").css("height",""+ifh+"px");
    $("#closeDiv").css("top",""+(h-12)+"px");
}

文档标题继续显示 420px,即使我知道内容小于那个。同样的问题发生在.offsetHeight.

谢谢你的帮助!

解决方案更新

好的,所以我在我标记为解决问题的答案中使用了代码,因为我确实使用了它,它帮助我解决了这个问题值得称赞,但这里涉及的实际问题是我有 iframe 的高度设置为容器盒的 100%;一旦我将其设置为 99%,就解决了问题。不知道为什么……但是嘿!

感谢您所有的帮助!

4

1 回答 1

0

尝试类似:

var iHeight;
if ($("iframe").length > 0) iHeight = $($("iframe")[0].contentDocument || $("iframe")[0].contentWindow.document).height();

虽然好的老式 ele 调用应该可以工作:

var iHeight;
if ($("iframe").length > 0) iHeight = $("iframe").height();
于 2012-11-15T21:16:52.887 回答