2012-02-25 57 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