html - 让iframe根据内容自动调整高度而不使用滚动条?
这个问题在这里已有答案:
调整iframe的宽度和高度以适应其中的内容 27个答案
例如:
frameborder="0" scrolling="no"> ...
我希望它能够根据其中的内容调整其高度,而不使用滚动。
17个解决方案
552 votes
将其添加到您的
部分:
function resizeIframe(obj) {
obj.style.height = obj.contentWindow.document.body.scrollHeight + px;
}
并将您的iframe更改为:
如在sitepoint讨论中找到的那样。
hjpotter92 answered -01-04T15:46:54Z
77 votes
您可以使用此库,它们最初都会正确调整iframe的大小,并通过检测iframe内容的大小(通过setInterval中的常规检查或通过MutationObserver)进行更改并调整大小来保持正确的大小。
[/davidjbradshaw/iframe-resizer]
这适用于跨域和相同的域iframe。
user2684310 answered -01-04T15:47:33Z
36 votes
hjpotter92的建议在safari中不起作用!我对脚本进行了一些小调整,所以它现在也适用于Safari。
只有更改是在每次加载时将高度重置为0,以便使某些浏览器降低高度。
添加到onload标签:
function resizeIframe(obj){
obj.style.height = 0;
obj.style.height = obj.contentWindow.document.body.scrollHeight + px;
}
并将以下onload属性添加到您的iframe,就像这样
Allan P answered -01-04T15:48:33Z
32 votes
这是一个紧凑版本:
οnlοad="this.style.height=this.contentDocument.body.scrollHeight +px;">
Chong Lip Phang answered -01-04T15:48:55Z
12 votes
在某些情况下,hjpotter92的答案运行得很好,但我发现iframe内容经常在Firefox& IE,虽然Chrome很好。
以下适用于我并修复剪辑问题。 代码可以在[http://www.dyn-/tutorials/iframes/height/。]找到。我做了一些修改,将onload属性从HTML中删除。 将以下代码放在
HTML之后和结束onload标记之前:
function getDocHeight(doc) {
doc = doc || document;
// stack