Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Html 自动装配iFrame高度_Html_Css_Jquery Ui_Iframe_Height - Fatal编程技术网

Html 自动装配iFrame高度

Html 自动装配iFrame高度,html,css,jquery-ui,iframe,height,Html,Css,Jquery Ui,Iframe,Height,现在,我有一个jQueryUI弹出对话框,可以从外部页面读取。此页面通过flowplayer读取另一个具有视频的外部文件 我使用iframe将视频嵌入到第一个: <div id="donkeyVideo"> <iframe id="iframeDonkey" width="100%" height="496" src="../../../../video/donkey-2009-02-23.html" frameBorder="0"></iframe> <

现在,我有一个jQueryUI弹出对话框,可以从外部页面读取。此页面通过flowplayer读取另一个具有视频的外部文件

我使用iframe将视频嵌入到第一个:

<div id="donkeyVideo">
<iframe id="iframeDonkey" width="100%" height="496" src="../../../../video/donkey-2009-02-23.html" frameBorder="0"></iframe>
</div>

100%的宽度似乎没问题,但100%的高度不起作用。有办法解决这个问题吗


我在哪里以及如何嵌入代码,以及ID之类的东西。请任何人帮忙?

如果您想使用100%而不是像素值,您必须使用某种JavaScript来动态调整iframe的高度

不幸的是,我的理解是,您无法动态更改指向不同域的iframe的高度

从迷失在代码中:

请注意,此jQuery autoHeight插件不适用于从不同域或远程位置访问内容的iFrame,因为由于JavaScript安全限制,无法从当前域访问来自不同域的窗口对象


如果你不想使用jquery插件,你可以使用我在facebook帖子上解释的方法(https://www.facebook.com/antimatterstudios/posts/10151007211674364)

您是否有IFrame,您希望自动设置其高度,因为您正在托管来自您网站中其他网站的页面

不幸的是,IFrame无法获取您正在加载的内容的高度,除非您输入一个高度,否则它将显示默认高度,或者根本不显示高度。这很烦人

我为您提供了解决方案,它只适用于最新的标准支持浏览器,也适用于IE8,所以对于99%的用户来说,它是完美的

唯一的问题是您需要在iframe中插入一个javascript,如果您正在加载的内容属于您,那么这很容易,您只需打开正在加载的内容并将javascript放入内容中即可

在您的网站中,您需要一段javascript,它可以“从IFrame接收消息”,如下所示

jQuery(document).ready(function(){
    jQuery(window).bind("message",function(e){
        data = e.data || e.originalEvent.data;
        jQuery("iframe.newsletter_view").height(data.height);
    });
});
在IFrame内容中,将其添加到最底部,可能只需要使用PHP或其他方法执行“$template.$javascript”之类的操作就可以了,即使javascript不在标记中

<script type="text/javascript" src="jquery-1.7.1-min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    parent.postMessage({
        height:$(document.body).height()+50+"px"
    },"*");
});
</script>

$(文档).ready(函数(){
parent.postMessage({
高度:$(document.body).height()+50+“px”
},"*");
});
显然,我正在使用jquery,您不必这样做,它只是更简单,而且您可能正在使用它,所以省去了麻烦

如果这样做,当iframe加载时,它将向父窗口发回一个信号,父窗口将根据内容的长度调整iframe的大小:)


我相信你能想出如何改变这些小东西,但这就是我正在使用的方法

你是想从父页面还是子页面设置iframe高度?我不知道。视频位于(示例)video.html中,上面的代码位于index.html中。索引从视频读取。