【问题标题】:Can't find a way to automatically resize my iframe to fit its content找不到自动调整 iframe 大小以适应其内容的方法
【发布时间】:2020-06-18 23:17:20
【问题描述】:

我正在重构我的个人网站,它是一个投资组合,我想根据用户想要查看的项目加载不同的页面,并且在 iframe 中加载子页面时遇到问题。我已经测试了一堆不同的 javascripts 和 css 方法来自动检测子页面的高度,但是我正在测试的所有东西似乎都无法读取子页面的高度,或者与设置 height="100%" 的效果相同iframe,它只填充父 div 而不是扩展它。

这是我目前得到的:

在头脑中:

<script>
    function resizeIframe(obj) { 
        obj.style.height = obj.contentWindow.document.documentElement.scrollHeight + 'px';          
    }
</script>

我的 iframe:

<iframe sandbox="allow-same-origin allow-scripts" lang="en" src="subpage.html" allowTransparency="true" scrolling="no" frameborder="0" width="100%" onload="resizeIframe(this)"></iframe>

有人可以帮我吗?我错过了什么吗?

P.S:我在网页设计和编程方面都是自学成才的,所以我的问题可能很愚蠢,或者我遗漏了一些明显的东西......对不起,如果是这样的话:/

P.S 之二:我知道 iframe 的使用并不总是最好的,但就我而言,它允许我非常轻松地集成和维护网页,因为我只需要从我设置的包含所有内容的 Notion 导出我的页面来自我的网站子页面,瞧……无需自己创建网站的所有子页面,维护起来非常容易

【问题讨论】:

    标签: javascript html css iframe


    【解决方案1】:

    动态创建 iframe 元素解决了这个问题。

    见:Creating an IFRAME using JavaScript

    还有:Make iframe automatically adjust height according to the contents without using scrollbar?

    lang 属性似乎也是罪魁祸首。

    关于为什么 iframe 没有按预期响应 HTML lang 属性也不是很清楚。也许这只是这个项目的情况?

    在这里您可以找到有关 iframe https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe 及其属性的信息。

    这里有关于全局 HTML 属性的信息...https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes

    【讨论】:

    • 我更新了答案以显示我得到的内容...iframe 内内容的完整和完整高度,您可以通过侧面的滚动条看到。
    • 是的...我在 iframe 中加载了整个页面。全宽和全高。
    • 在主css中添加宽度100vw而不是内联。如果您仍然有问题并且如果您愿意,我可以从那里的 github 获取 repo 并进行更改
    • 没问题我会及时通知你
    • 你能给我写访问我想要推送更改的存储库的权限吗?谢谢。
    猜你喜欢
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 2012-07-22
    • 1970-01-01
    • 2014-07-02
    相关资源
    最近更新 更多