如何根据元素高度动态调整iframe高度?

发布于 2025-01-02 22:58:45 字数 521 浏览 0 评论 0原文

我正在与父/容器页面位于同一域/协议内的 iframe 中加载 aspx 网页。 Iframe 中的内容有时比 iframe 本身还要高。我不想在 Iframe 上显示滚动条。

我需要根据 iframe 将包含的 aspx 页面内的包装器“div”标签调整 iframe 的高度。 下面是我为实现此目的而编写的 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 中会崩溃。 我真的很困惑/迷失为什么会发生这种情况。

谁能就我如何更好地处理这种情况提供任何建议? 我们将非常感谢您的帮助 谢谢

I am loading an aspx web page in an iframe within the same domain/protocol as the parent/container page. The content in the Iframe is sometimes of more height than the iframe itself. I do not want to display scroll bars on my Iframe.

I need to resize the height of the Iframe based on the wrapper 'div' tag inside the aspx page that the iframe will contain.
Below is the jquery i had written to achieve this:

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

'TB_window' - the div in which the Iframe is contained.

'body' - the body element of the aspx in the iframe.

This script is attached to the iframe content. i am getting the TB_window element from the parent page.
while this works fine on Chrome, but the TB_window collapses in firefox.
I am really confused/lost on why that happens.

Can anyone offer any advice on how i can handle the situation better??
Your help will be highly appreciated
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

农村范ル 2025-01-09 22:58:45

您必须在 iframe 上使用管理某些事件,

 <iframe id="iframe" src="xyz" onload="FrameLoad(this);"
  onresize="FrameLoad(this);" scrolling="no" frameborder="0">
  </iframe>


   function FrameLoad(ctrl) {
   var the_height = ctrl.contentWindow.document.body.scrollHeight;
   $(ctrl).height(the_height)
 }

也可用于跨浏览器

document.domain = document.location.hostname;

在父页面和子页面中

You have to use manage some event on your iframe

 <iframe id="iframe" src="xyz" onload="FrameLoad(this);"
  onresize="FrameLoad(this);" scrolling="no" frameborder="0">
  </iframe>


   function FrameLoad(ctrl) {
   var the_height = ctrl.contentWindow.document.body.scrollHeight;
   $(ctrl).height(the_height)
 }

also use for cross browser

document.domain = document.location.hostname;

in both parent page and child page

海夕 2025-01-09 22:58:45

如果差异不是那么大,您可以添加

overflow:hidden

到 css 类,

这不会调整窗口大小,但可能是您正在搜索的内容。

If the difference is not that big you can add

overflow:hidden

to the css class

this doesn't resize the window but could be what you're searching for.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文