Попытка заставить YT iframe динамически изменять видео. В настоящее время используется статический идентификатор видео и вы хотите, чтобы пользователь вводил один через форму. Функция onPlayerReady вызывает другую функцию initalize(), которая принимает значение данных формы и регистрирует ее. Кнопка submit onclick также вызывает эту функцию initalize. Однако, когда нажата кнопка отправки, страница обновляется, а значение var исчезает, и оно не может быть зарегистрировано и использовано для перезагрузки iframe. Любая идея о том, как я буду решать это?
Попробуйте передать входное значение непосредственно функции, которая изменяет iframe src, вместо того, чтобы использовать submit.
Пример:
var userSrc = document.querySelector("#yourInputId");
if(userSrc.value.length > 1){
updateSrc(userSrc.value);
}
Вам нужно настроить код, если вы используете заполнитель в своем вводе или что-нибудь, что повлияет на длину.
Если вы все еще хотите использовать submit, вы, вероятно, должны каким-то образом сохранить свой ввод. Но я бы не рекомендовал его, так как он не удобен для обновления страницы только для изменения src.
редактировать
Я делаю что-то быстро вместе, это работает. Этот код будет обновлять src без обновления пейджера /iframe. Вы также можете загрузить функцию после загрузки игрока в DOM, для этого вы можете сделать условие, которое проверяет состояние плеера (эти функции поставляются с шаблоном из документации Google).
function loadVid(){
var videoId = document.querySelector("input[name=vidId").value;
if(videoId.length > 0){
player.loadVideoById(videoId);
} else {
alert("You need to enter an video id");
}
}
У Google есть полезный шаблон, чтобы начать работу, если вы уже не проверили его.