タブを離れるとYouTube動画の再生を停止する方法を探しています。問題は、jqueryを使用してビデオに追加する必要があることがわかったすべてのソリューションです。以下のように。タブ終了後にYouTube動画を再生しない
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
私の環境の制限から、私はこの能力を持っていません。 各ページに追加される動画の数が不明です。1,2、または10になる可能性があります。
動画を表示していないタブに切り替えたときに動画の再生を停止する方法が必要です。
私は近いと思いますが、私はこのメッセージを「キャッチされない例外TypeError:player.stopVideoは関数ではありません」を取得
<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>
そして、私のスクリプトを次のように私のセットアップがある私は
<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>
答えをありがとう。このソリューションは基本的に私と同じことをしますが、問題は「Uncaught TypeError:player.stopVideoは関数ではありません」ということです。あなたはそれを解決する方法を知っていますか? – JeffTalbot