2012-02-25 59 views
1

我知道,被张贴在越来越jQuery的对话框出现在YouTube视频前面的修复,但我使用他们的新的IFrame埋线法:在YouTube上的iframe jQuery模态窗口

var tag = document.createElement('script'); 
tag.src = "http://www.youtube.com/player_api"; 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
var player; 

如何我可以在视频上看到对话吗?

+0

你在哪个浏览器面临问题 – 2012-02-25 11:54:39

+1

看看这里http://stackoverflow.com/questions/3820325/overlay-opaque-div-over-youtube-iframe – danielepolencic 2012-03-27 11:52:34

回答

5

如果您使用新的iframe代码,只需将“wmode = transparent”作为查询字符串段添加到url字符串中即可。

<iframe width="403" height="235" src="http://www.youtube.com/embed/(video_code)?wmode=transparent" frameborder="0" allowfullscreen></iframe> 
1

我说 '的wmode' 到 'playerVars' 的脚本,请参见下面的示例代码...

<script type="text/javascript"> 
var tag = document.createElement('script'); 
tag.src = "http://www.youtube.com/player_api"; 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

var player; 
function onYouTubePlayerAPIReady() { 
    player = new YT.Player('player', { 
    height: '390', 
    width: '640', 
    videoId: 'FM-Vt87W3_A', 
    playerVars: { 
     'autoplay': '0', 
     'wmode': 'transparent', 
     'showinfo': '0'}, 
    events: { 
     'onStateChange': onPlayerStateChange} 
    }); 
} 

function onPlayerStateChange(event) { 
    if (event.data == YT.PlayerState.ENDED) { 
     window.location="index.php"; 
    } 
} 

0

我知道这个职位是很老。但是,现在问题依然存在于IE 11中。我发现解决这个荒谬问题的最简洁最可靠的方法是在包含youtube播放器的div上调用.hide(),在jQuery UI对话框中打开:function( ),然后在对话框的close:function()中再次显示播放器div。快乐的日子:D