У меня есть основное видео YouTube и некоторые связанные видео внизу. Видео YouTube загружается из параметра имени видеоизображения в моем URL-адресе. Если имя видео существует, YouTube iframe загружается при загрузке страницы, но если имя видео не существует, YT iframe не загружается, пока пользователь не щелкнет связанное видео внизу. Если пользователь нажимает на связанное видео, загружается iframe и используется одна и та же функция onPlayerReady, а onPlayerStateChange следует использовать, когда iframe загружается с начала. Как я могу вставить iframe на странице и использовать ту же самую функцию, которую я использую, когда она была загружена с самого начала. ? player.jsВставьте YouTube iframe после загрузки страницы.
var tag = document.createElement('script'),
firstScriptTag = document.getElementsByTagName('script')[0],
player;
tag.src = "https://www.youtube.com/player_api";
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
function onYouTubePlayerAPIReady() {
player = new YT.Player('ytplayer', {
height: height,
width: width,
videoId: yt_id,
playerVars: {
wmode: "transparent",
controls: 0,
showinfo: 0,
rel: 0,
modestbranding: 1,
iv_load_policy: 3 //anottations
},
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
};
function onPlayerReady(event) {
//code here
//I want to use this code even when the player is loaded after the page is loaded (when the user clicks a related video at the bottom)
}
function onPlayerStateChange(event) {
//here too
}
insert_frame.js
var tag = document.createElement('script'),
firstScriptTag = document.getElementsByTagName('script')[0],
player;
tag.src = "https://www.youtube.com/player_api";
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
player = new YT.Player('ytplayer', {
height: height,
width: width,
videoId: yt_id,
playerVars: {
wmode: "transparent",
controls: 0,
showinfo: 0,
rel: 0,
modestbranding: 1,
iv_load_policy: 3 //anottations
},
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
Спасибо за этот хорошо объясненный ответ. Значит, вы хотите загрузить плеер, даже если он ошибается, а затем скрывает его? –