gpt4 book ai didi

javascript - 隐藏 iframe 的内容高度

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:29:54 25 4
gpt4 key购买 nike

正如标题所说,我正在尝试设置一个隐藏的 iframe 高度以匹配它的内容,但我总是得到非常不正确的高度。

我正在预加载一个包含内容的新(隐藏)iframe,我需要在 iframe 设置为由用户显示之前设置高度。

我一直在轻松地使用长时间可见的框架来执行此操作,但现在框架在加载时隐藏起来了。我查看了 SO 的每个 Angular 落,尝试了很多基本功能的变体,但没有成功。

我试着让 iframe 可见,设置高度然后隐藏它,但框架的快速闪烁并不吸引人。有没有一种我不知道的方法可以从隐藏的 iframe 中获取实际内容高度?

对 jquery 或纯 js 的想法开放。这是我一直在使用的两个最常见的示例。

如有任何建议,我们将不胜感激。提前谢谢你。

// example 1 
function resizeIframe(obj){
obj.style.height = 0;
obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';
}

portalDiv.append('<iframe src="" scrolling="no" style="display:none;"></iframe>');
$('iframe').last().attr('src', '/content.php').load(function() {
resizeIframe(this);
// should return 363px
// returns 1531px :(
});

// example 2
portalDiv.append('<iframe src="" scrolling="no" style="display:none;"></iframe>');
$('iframe').last().attr('src', '/content.php').load(function() {
var contentHeight = $(this).contents().find(".container").height();
$(this).height(contentHeight+"px")
// should return 363px
// returns 1531px :(
});

最佳答案

根据@murdock 的建议,我能够通过结合可见性和显示样式来实现我正在寻找的结果。

之后我使用了 display attr,因为即使有可见性,父主体的高度也会增加,除非元素设置为 display: none;

这是我做的

portalDiv.append('<iframe src="" scrolling="no" style="visibility:hidden;"></iframe>');
$('iframe').last().attr('src', '/content.php').load(function() {
var contentHeight = ($(this).contents().find(".question-table-container").height()+30);
$(this).removeAttr("style").hide().height(contentHeight);
});

希望这对以后的其他人有帮助。

编辑: 起初我仍然有相当多的页面退缩。所以我删除了可见性样式并决定在我的 css 中将高度设置为 0px。然后获取内容高度,隐藏iframe,设置iframe高度匹配内容。厉害了!

portalDiv.append('<iframe src="" scrolling="no" style="visibility:hidden;"></iframe>');
$('iframe').last().attr('src', '/content.php').load(function() {
var contentHeight = this.contentWindow.document.body.scrollHeight;
$(this).hide().height(contentHeight);
});

关于javascript - 隐藏 iframe 的内容高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32956457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com