1

所以基本上,我有一个弹出代码,可以弹出一个 div。在里面,有一个 youtube 视频播放器。一切正常,直到我关闭窗口,我仍然可以听到背景音乐,这意味着视频仍在播放。我想阻止它。我做了一些研究并落在了 youtube API 上,但它仍然不起作用。

这是我的 div 代码

echo "<div id='popupContact'>";
echo "<a id='popupContactClose'>x</a>";
echo "<div><h1>" .$row['title']. "</h1></div>";
echo "<p id='contactArea'>";
if($row[type] == "image")
echo "<img src='gallery/" .$row['path']. "' alt='" .$row['title']. "'/>";
else
echo "<iframe width='560' height='315' src='http://www.youtube.com/v/" .$row['path']."?        enablejsapi=1&version=3&playerapiid=ytplayer' frameborder='0' allowfullscreen></iframe>";
echo "<br/><br/>" .$row['description']. "</p>";
echo "</div>";
echo "<div id='backgroundPopup'></div>";

这是弹出窗口的代码:

//CONTROLLING EVENTS IN jQuery
$(document).ready(function(){

//LOADING POPUP
//Click the button event!
$("#button").click(function(){
    //centering with css
    centerPopup();
    //load popup
    loadPopup();
});

//CLOSING POPUP
//Click the x event!
$("#popupContactClose").click(function(){
    disablePopup();
});
//Click out event!
$("#backgroundPopup").click(function(){
    disablePopup();
});
//Press Escape event!
$(document).keypress(function(e){
    if(e.keyCode==27 && popupStatus==1){
        disablePopup();
    }
});

});

//disabling popup with jQuery magic!
function disablePopup(){
//disables popup only if it is enabled
if(popupStatus==1){
    $("#backgroundPopup").fadeOut("slow");
$("#popupContact").fadeOut("slow");
popupStatus = 0;
stop();
}
}
function onYouTubePlayerReady(playerId) {
alert("YAY");
ytplayer = document.getElementById("ytplayer");
}

function stop() {
if (ytplayer) {
ytplayer.stopVideo();
}
}

谢谢你,阿拉

4

2 回答 2

0

我正在查看Youtube 文档(iframe),我认为您正在混淆不同的 api

它在JavaScript API 上声明

我们建议使用 SWFObject 嵌入任何将使用 JavaScript API 访问的播放器。

但是您使用的是 iframe。所以我认为你需要创建一个名为

function onYouTubeIframeAPIReady()

它有几行代码来设置所有内容以及其他功能。

于 2012-08-15T22:43:26.373 回答
0

可变范围。你只ytplayer在你的onYouTubePlayerReady()函数内部定义,并且不返回值。当该函数返回时, ytplayer 值被销毁。

您需要定义函数的变量OUTSIDE:

var ytplayer;   // now a global variable.
function onYouTubePlayerReadye(playerID) {
   ytplayer = document.getElementById('ytplayer');
}
于 2012-08-15T18:48:11.537 回答