Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使iframe占用垂直空间_Javascript_Html_Css_Iframe - Fatal编程技术网

Javascript 使iframe占用垂直空间

Javascript 使iframe占用垂直空间,javascript,html,css,iframe,Javascript,Html,Css,Iframe,我想让iframe占据显示内容所需的垂直空间,而不是显示滚动条。有可能吗 有什么解决方法吗?此CSS片段应删除垂直滚动条: 正文{ 溢出x:隐藏; 溢出y:隐藏; } 我还不确定它是否需要占用足够多的垂直空间,但我会看看我是否能找到它。这应该将IFRAME高度设置为其内容的高度: <script type="text/javascript"> the_height = document.getElementById('the_iframe').contentWindow.docu

我想让
iframe
占据显示内容所需的垂直空间,而不是显示滚动条。有可能吗


有什么解决方法吗?

此CSS片段应删除垂直滚动条:

正文{
溢出x:隐藏;
溢出y:隐藏;
} 

我还不确定它是否需要占用足够多的垂直空间,但我会看看我是否能找到它。

这应该将
IFRAME
高度设置为其内容的高度:

<script type="text/javascript">
the_height = document.getElementById('the_iframe').contentWindow.document.body.scrollHeight;
document.getElementById('the_iframe').height = the_height;
</script>

_height=document.getElementById('the_iframe').contentWindow.document.body.scrollHeight;
document.getElementById('the_iframe')。高度=_高度;
您可能需要将
scrolling=“no”
添加到
IFRAME
以关闭滚动条


编辑:哎呀,忘了声明
高度

IFRAME
源文档添加
DOCTYPE
声明将有助于从行计算正确的值

document.getElementById('the_iframe').contentWindow.document.body.scrollHeight

当IE和FF以“怪癖”模式呈现
iframe
文档时,我遇到了问题,直到我添加了
DOCTYPE

FF/IE/Chrome支持:.scrollHeight不适用于Chrome,因此我提出了一个javascript示例,使用jQuery根据iframes内容设置页面上的所有
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>

$(文档).ready(函数(){
$('iframe')。每个(函数(){
var-context=$(这个);
load(函数(事件){//将onload事件附加到iframe
var body=$(this.contentWindow.document).find('body');
如果(body.length>0&&$(body.find('*').length>0){//检查iframe是否有内容
context.height($(body.get(0)).height()+20);
}否则{
context.hide();//隐藏没有内容的iframe
}
});
});
});

解决方法不是在服务器端使用
和预处理代码。

也请检查此线程:


它解决了同样的问题。

非常方便,干杯。可能值得一提的是,如果iframe由于相同的源策略而位于不同的域上,那么这将无法很好地工作。这并不总是可能的,除非您要构建一个自定义代理服务器来重写html正文中的链接。。。这是个笑话。