API iframe YT JS, перезагрузите фрейм с введенным пользователем значением

1

Попытка заставить YT iframe динамически изменять видео. В настоящее время используется статический идентификатор видео и вы хотите, чтобы пользователь вводил один через форму. Функция onPlayerReady вызывает другую функцию initalize(), которая принимает значение данных формы и регистрирует ее. Кнопка submit onclick также вызывает эту функцию initalize. Однако, когда нажата кнопка отправки, страница обновляется, а значение var исчезает, и оно не может быть зарегистрировано и использовано для перезагрузки iframe. Любая идея о том, как я буду решать это?

Теги:
youtube-api
youtube-iframe-api

1 ответ

0
Лучший ответ

Попробуйте передать входное значение непосредственно функции, которая изменяет 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 есть полезный шаблон, чтобы начать работу, если вы уже не проверили его.

  • 0
    Закончилось тем, что реализовало что-то вроде этого. Я заменил кнопку отправки на искусственную кнопку, которая фактически просто перезагружает страницу, и строка ввода из формы задерживается, а iframe загружается автоматически. Очень хакерское, но пока единственное решение, которое работает
  • 0
    Не уверен, если вам нужно перезагрузить страницу. Поскольку это JS, вы должны иметь возможность визуализировать только определенный компонент (src). Я немного покопался в yt js iframe api и нашел решение, которое не перезагружает iframe или страницу, а только необходимые компоненты. Посмотрите на мое обновление, если вы хотите попробовать.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню