2010-10-19 97 views
4

我有一个页面,其中包含一个显示外部网站的iframe,覆盖整个页面,顶部有一个div,内容类似于google图像的新界面。 如果在iframe中包含的页面中有一个YouTube视频,它会覆盖主页面中的内容,因为iframe中的页面来自外部网站,因此无法将wmode设置为透明。Youtube视频从Iframe顶部

有没有一种方法来控制flash内部iframe的分层?

感谢

朱塞佩

回答

0

既然你已经张贴的问题相当长一段时间我不知道你已经知道了答案。

不管怎么说,你可以尝试使用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>'); 
} 
4

你只需要改变的iframe的src值,像这样:

$('iframe').each(function() { 
    var fixed_src = $(this).attr('src') + '&amp;wmode=transparent'; 
    $(this).attr('src', fixed_src); 
}); 

*注意:这是特定于YouTube的iframe嵌入代码。

+1

如果iframe源代码中没有其他获取参数,那么这并不真正起作用,因此您需要首先检查$(this).attr('src')是否包含“?”如果没有,那么你应该用“?”前缀“wmode = transparent”而不是“&”。 – 2011-04-13 13:45:38

1

只需在YouTube嵌入式iframe属性的末尾添加&wmode=transparent即可。您可以稍后使用jQuery更改src,但为何让页面加载错误的内容,然后更改它以便重新加载正确的内容?只需编辑HTML。

2

添加?,而不是&。例如, “WMODE =透明?”:

<iframe width="697" height="400" src="http://www.youtube.com/embed/IgvDkflXVuw?wmode=transparent" frameborder="0" allowfullscreen></iframe> 
0

只是还连同属性到iframe的其余部分添加ID如下所示

<iframeID = “YouTube播放”宽度= “697” height =“400”src =“http://www.youtube.com/embed/IgvDkflXVuw?wmode=transparent”allowfullscreen =“”type =“text/html”wmode =“Opaque”frameborder =“0” wmode = “Opaque”>`