获取显示中元素的高度:无iframe

时间:2013-09-25 14:41:31

标签: css html5

我尝试获取iframe中元素的高度,并且iframe位于带有display:none的div中。我需要iframe文档中的高度,而不是外部。所以你不必考虑安全限制。

编辑:这是解决问题的一个小问题:http://jsfiddle.net/bv5JH/1/。控制台将记录0。并且我无法将div#myelement(或它的副本)附加到一些可见元素(这样它将被渲染,我可以获得高度,如下面的“解决方案”)。

我找到了一些解决方案,如:

var copied_elem = $("#myelement").clone()
                      .attr("id", false)
                      .css({visibility:"hidden", display:"block", 
                               position:"absolute"});
    $("body").append(copied_elem);
    var height = copied_elem.height();
    var width = copied_elem.width();
    copied_elem.remove();

如果元素本身是display:none,那将会有效。但我在iframe中根本没有任何显示的元素,所以我无法将其附加到显示的元素。

无论如何都知道如何获得高度?

2 个答案:

答案 0 :(得分:0)

由于您似乎在IFRAME和您的内容之间设置了互动,因此将其应用于IFRAME本身应该不难:

position: absolute;
display: block;
top: -999999;
left: -999999;

然后你应该能够在IFRAME中获得你的元素的尺寸,一旦你得到它,通过重置这些样式将IFRAME恢复到原来的位置。

答案 1 :(得分:0)

对我来说,没有足够的声誉可以承诺。我在这里说。 改变iframe的立场是个好主意,是的。

图像打击是我的代码,它是一个标签。

<div class="table census-table">
   <div class="census-table-list">
       <iframe src="census-baseData-iframe.php" frameborder="0" scrolling="no" width="950" 1height="590" style=""></iframe>
       <iframe src="census-activeUser-iframe.php" frameborder="0" scrolling="no" width="950"  1height="590" style="display: none;"></iframe>
       <iframe src="census-userKeep-iframe.php" frameborder="0" scrolling="no" width="950" 1height="590" style="display: none;"></iframe>
       iframe src="census-userPay-iframe.php" frameborder="0" scrolling="no" width="950" 1height="590" style="display: none;"></iframe>
   </div>
</div>