Html 自动装配iFrame高度
现在,我有一个jQueryUI弹出对话框,可以从外部页面读取。此页面通过flowplayer读取另一个具有视频的外部文件 我使用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> <
<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中。索引从视频读取。