我正在iframe中加载aspx网页。 iframe中的内容可以比iframe的高度更高。 iframe不应该具有滚动条。

我在iframe中有一个包装div标签,基本上所有内容都包含在内。我写了一些jQuery来调整大小:

$("#TB_window", window.parent.document).height($("body").height() + 50);


哪里
TB_window是包含Iframe的div。

body-iframe中aspx的body标签。

该脚本已附加到iframe内容中。我从父页面获取TB_window元素。尽管这在Chrome上可以正常运行,但是TB_window在Firefox中崩溃。我真的很困惑/迷茫,为什么会这样。

最佳答案

您可以使用以下方法检索IFRAME内容的高度:
contentWindow.document.body.scrollHeight

加载IFRAME后,您可以通过执行以下操作来更改高度:

<script type="text/javascript">
  function iframeLoaded() {
      var iFrameID = document.getElementById('idIframe');
      if(iFrameID) {
            // here you can make the height, I delete it first, then I make it again
            iFrameID.height = "";
            iFrameID.height = iFrameID.contentWindow.document.body.scrollHeight + "px";
      }
  }
</script>


然后,在IFRAME标记上,像这样连接处理程序:

<iframe id="idIframe" onload="iframeLoaded()" ...


不久前,我遇到了一种情况,即在其中发生表单提交后,我还需要从iframeLoaded本身调用IFRAME。您可以通过在IFRAME的内容脚本中执行以下操作来实现:

parent.iframeLoaded();

关于javascript - 根据内部内容使iframe高度动态-JQUERY/Javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27835494/

10-16 19:00