我有一个页面,其中包含一个显示外部网站的iframe,覆盖整个页面,顶部有一个div,内容类似于google图像的新界面。 如果在iframe中包含的页面中有一个YouTube视频,它会覆盖主页面中的内容,因为iframe中的页面来自外部网站,因此无法将wmode设置为透明。Youtube视频从Iframe顶部
有没有一种方法来控制flash内部iframe的分层?
感谢
朱塞佩
我有一个页面,其中包含一个显示外部网站的iframe,覆盖整个页面,顶部有一个div,内容类似于google图像的新界面。 如果在iframe中包含的页面中有一个YouTube视频,它会覆盖主页面中的内容,因为iframe中的页面来自外部网站,因此无法将wmode设置为透明。Youtube视频从Iframe顶部
有没有一种方法来控制flash内部iframe的分层?
感谢
朱塞佩
既然你已经张贴的问题相当长一段时间我不知道你已经知道了答案。
不管怎么说,你可以尝试使用JavaScript(使用jQuery就会简单得多;)改变的wmode)
试试这个代码:
if ($('embed').length){
$('embed').attr('wmode', 'transparent').wrap('<div>');
}
,或者如果它不能识别嵌入式在iframe里面的对象,你可以尝试:
if ($('iframe embed', parent.document).length){
$('iframe embed', parent.document).attr('wmode', 'transparent').wrap('<div>');
}
你只需要改变的iframe的src值,像这样:
$('iframe').each(function() {
var fixed_src = $(this).attr('src') + '&wmode=transparent';
$(this).attr('src', fixed_src);
});
*注意:这是特定于YouTube的iframe嵌入代码。
只需在YouTube嵌入式iframe属性的末尾添加&wmode=transparent
即可。您可以稍后使用jQuery更改src,但为何让页面加载错误的内容,然后更改它以便重新加载正确的内容?只需编辑HTML。
添加?,而不是&。例如, “WMODE =透明?”:
<iframe width="697" height="400" src="http://www.youtube.com/embed/IgvDkflXVuw?wmode=transparent" frameborder="0" allowfullscreen></iframe>
只是还连同属性到iframe的其余部分添加ID如下所示
<iframe
ID = “YouTube播放”宽度= “697” height =“400”src =“http://www.youtube.com/embed/IgvDkflXVuw?wmode=transparent”allowfullscreen =“”type =“text/html”wmode =“Opaque”frameborder =“0” wmode = “Opaque”>`
如果iframe源代码中没有其他获取参数,那么这并不真正起作用,因此您需要首先检查$(this).attr('src')是否包含“?”如果没有,那么你应该用“?”前缀“wmode = transparent”而不是“&”。 – 2011-04-13 13:45:38