2011-08-11 31 views
5

Rất ít chủ đề về điều này nhưng không có câu trả lời cho tôi.Video được nhúng trên YouTube không dừng lại trong Chrome và IE

Nhúng youtube video trong một div overlay:

<div id="blanket" style="display:none;"> 
    </div> 
     <div id="popUpDiv" style="display:none;"> 
     <a href="#" onclick="popup('popUpDiv')">Close</a>  
     <iframe width="480" height="390" src="https://www.youtube.com/embed/G5AuItKv?rel=0&autoplay=1" frameborder="0" allowfullscreen></iframe>          
     </div> 

Mở firefox khi tôi đóng cửa sổ video dừng lại, nhưng không phải trong Chrome hoặc Internet Explorer.

Có một số javascript đơn giản mà tôi có thể sử dụng để dừng khi người dùng nhấp vào Đóng không?

TIA

Edit:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 

<a href="#" onclick="javascript:ytplayer.stop()">Close</a> 

<iframe width="480" height="390" src="http://www.youtube.com/e/PE1il5znICA?enablejsapi=1&version=3&playerapiid=ytplayer" frameborder="0" allowfullscreen></iframe> 


<script type="text/javascript"> 
function onYouTubePlayerReady(playerId) { 
    ytplayer = document.getElementById("ytplayer"); 
} 

function stop() { 
    if (ytplayer) { 
    ytplayer.stopVideo(); 
    } 
} 
</script> 
</body> 
</html> 

Trả lời

3

Youtube có api javascript mà bạn có thể kích hoạt để ngăn chặn các video. Để cho phép api thêm tham số này: &enablejsapi=1 vào cuối url src của bạn và bây giờ bạn có thể truy cập trình phát qua javascript. Trước tiên, bạn cần phải nhận được tài liệu tham khảo chơi:

function onYouTubePlayerReady(playerId) { 
    ytplayer = document.getElementById("nameofplayer"); 
} 

và bây giờ bạn có khả năng ngăn chặn các video với các chức năng sau:

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

Chỉ cần thực hiện cuộc gọi đến stop(); bên trong hàm onclick cho gần .

Tất cả thông tin api youtube javascript nằm ở here.

+0

Kiểm tra thêm iframe youtube api hơi khác một chút. Vui lòng xem [tại đây] (https://code.google.com/apis/youtube/iframe_api_reference.html#Loading_a_Video_Player) để biết thêm thông tin về cách truy cập trình phát qua javascript. –

1

Tôi gặp vấn đề tương tự trong HTML5. Iframe không hoạt động với API Youtube, Bạn phải tạo đối tượng có bật JavaScript api.

Hãy thử thay đổi:

<iframe width="480" height="390" src="http://www.youtube.com/e/PE1il5znICA?enablejsapi=1&version=3&playerapiid=ytplayer" frameborder="0" allowfullscreen></iframe> 

tới:

swfobject.embedSWF("http://www.youtube.com/e/PE1il5znICA?enablejsapi=1&version=3&playerapiid=ytplayer","ytplayer", "480", "390", "8", null, null, params, atts); 

dụ:

Đầu tiên thêm div html:

<div id="ytplayer"> 
<p>You need Flash player and JavaScript enabled to view this video.</p> 
</div> 

Sau đó thêm kịch bản để tạo ra đối tượng và thêm chức năng dừng:

<script type="text/javascript"> 

    function onYouTubePlayerReady(playerId){ytplayer = document.getElementById("ytplayer");} 
     var params = { allowScriptAccess: "always" };var atts = { id: "ytplayer" }; 


     swfobject.embedSWF("http://www.youtube.com/e/videoID?enablejsapi=1&version=3&playerapiid=ytplayer","ytplayer", "425", "356", "8", null, null, params, atts); 

     function stop() {if (ytplayer) {ytplayer.stopVideo();}} 
    </script> 

Làm việc cho tôi.

Các vấn đề liên quan