我希望iframe
占用尽可能多的垂直空间,以显示其内容而不显示滚动条。它有可能吗?
有没有解决方法?
答案 0 :(得分:10)
这应该将IFRAME
高度设置为其内容的高度:
<script type="text/javascript">
the_height = document.getElementById('the_iframe').contentWindow.document.body.scrollHeight;
document.getElementById('the_iframe').height = the_height;
</script>
您可能需要将scrolling="no"
添加到IFRAME
以关闭滚动条。
编辑:哎呀,忘了宣布the_height
。
答案 1 :(得分:0)
此CSS代码段应删除垂直滚动条:
body {
overflow-x: hidden;
overflow-y: hidden;
}
我不确定它是否需要占用尽可能多的垂直空间,但我会看到我是否无法理解它。
答案 2 :(得分:0)
在DOCTYPE
源文档中添加IFRAME
声明将有助于从行计算正确的值
document.getElementById('the_iframe').contentWindow.document.body.scrollHeight
我在使用IE和FF时遇到问题,因为它在“怪癖”模式下呈现iframe
文档,直到我添加了DOCTYPE
。
FF / IE / Chrome支持:.scrollHeight无法与Chrome配合使用,因此我想出了一个javascript示例,使用jQuery根据iframe内容设置页面上的所有IFRAME
高度。注意:这适用于当前域中的参考页面。
<script type="text/javascript">
$(document).ready(function(){
$('iframe').each(function(){
var context = $(this);
context.load(function(event){ // attach the onload event to the iframe
var body = $(this.contentWindow.document).find('body');
if (body.length > 0 && $(body).find('*').length > 0) { // check if iframe has contents
context.height($(body.get(0)).height() + 20);
} else {
context.hide(); // hide iframes with no contents
}
});
});
});
</script>
答案 3 :(得分:0)
解决方法是不在服务器端使用<iframe>
和预处理代码。
答案 4 :(得分:0)