私は、1ページに15個のYouTube埋め込みを含むウェブサイト魔女を構築しています.youtube-api javascriptコード魔女がそれらを連続的に再生し、埋め込みを囲むクラスを変更します。問題は、コードが時々起動しないことです。これはオンラインでのみ発生し、私のコンピューターでは発生しません。これは、接続が遅いと 15 個の埋め込みをロードするのに時間がかかりすぎることがあるからだと思います。おそらく、プレーヤーの準備ができていないか、遅すぎるときにコードが起動するのでしょうか? うーん...わかりません。コード全体を SetTimout() でラップしようとしましたが、うまくいきませんでした。誰にも解決策がありますか?助けていただければ幸いです。
コード (部分的):
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 player1;var player2;
function onYouTubeIframeAPIReady() {
player1 = new YT.Player('player1', {
events: {
'onStateChange': onPlayerStateChange1
}
});
player2 = new YT.Player('player2', {
events: {
'onStateChange': onPlayerStateChange2
}
});
---- etc... (untill player 15)
function onPlayerStateChange1(event) {
if (event.data == 0) {
player2.playVideo();
};
if (event.data == 1) {
document.getElementById("redlow1").setAttribute("class", "hero-unit77");
document.getElementById("redhigh1").setAttribute("class", "hero-unit88");
};
if (event.data == 2 || event.data == 0 || event.data == 5) {
document.getElementById("redlow1").setAttribute("class", "hero-unit7");
document.getElementById("redhigh1").setAttribute("class", "hero-unit8");
};
}
function onPlayerStateChange2(event) {
if (event.data == 0) {
player3.playVideo();
};
if (event.data == 1) {
document.getElementById("redlow2").setAttribute("class", "hero-unit77");
document.getElementById("redhigh2").setAttribute("class", "hero-unit88");
};
if (event.data == 2 || event.data == 0 || event.data == 5) {
document.getElementById("redlow2").setAttribute("class", "hero-unit7");
document.getElementById("redhigh2").setAttribute("class", "hero-unit8");
};
}
---- etc... (untill player 15)