【发布时间】:2017-05-02 08:39:30
【问题描述】:
我一直在寻找在我离开标签后停止播放 youtube 视频的方法。问题是我发现的所有解决方案都需要我使用 jquery 添加到视频中。如下所示。
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
由于我所处环境的限制,我没有这个能力。 每个页面添加的视频数量未知,可能有 1、2 或 10 个,这取决于。
当我将标签切换到不显示视频的标签时,我需要一种方法来阻止视频播放。
我的设置如下
<div class="tabs-content">
<div id="panel-1" class="tabs-panel">CONTENT</div>
<div id="panel-2" class="tabs-panel">
<iframe type="text/html" id="player" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/l2cANlMm_OI?enablejsapi=1" frameborder="0"></iframe>
<iframe type="text/html" id="player" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/l2cANlMm_OI?enablejsapi=1" frameborder="0"></iframe>
/* There could be more than this */
</div>
</div>
<a class='change-tab' href="#"></a>
我认为我的脚本很接近,但我收到这条消息“Uncaught TypeError: player.stopVideo is not a function”
<script>
$(document).ready(function(){
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var stopVideos = function() {
$('#panel-2 iframe').each(function(i, el) {
if(!window.YT)
return;
var player = new YT.Player(el);
player.stopVideo();
});
}
$(".change-tab").on('click',function() {
stopVideos();
}
});
</script>
【问题讨论】:
标签: jquery youtube-api