调整 iframe 的大小,以便在每次更改 src 时包装其内容

Resize iframe to wrap it's content every time it changes it src

本文关键字:src 包装 iframe 调整      更新时间:2023-09-26

我设法调整了iframe的大小,以使用以下代码包装其内容:

var frameHeight = document.getElementById("fibertjekIframe").contentWindow.document.body.scrollHeight;
$(this).height(frameHeight);

第一次加载页面时它工作正常,但是在该 iframe 内部是一个表单,当用户提交表单时,他会被重定向到该 iframe 中的另一个页面。我希望 iframe 也根据其内容调整大小。

我希望这会起作用:

// Auto resize of the Fibertjek Iframe
$("#fibertjekIframe").on("load", function () {
    var frameHeight = document.getElementById("fibertjekIframe").contentWindow.document.body.scrollHeight;
    $(this).height(frameHeight);
});

每次在 iframe 中加载新的 src 时都会调用该函数,但由于某种原因,我得到了 iframe 的旧高度,因此它保持不变。

编辑:我调查了更多,我发现即使在表单提交(在iframe中)和重定向之后,iframe的src属性保持不变,所以我假设它仍然引用旧页面,即使它已被重定向。我得到的唯一方法就是将 iframe 的源代码设置为表单提交后重定向到的页面,但这不是方便和正确的解决方案......

我建议使用iframe-resizer,它可以做你想要的:https://github.com/davidjbradshaw/iframe-resizer