Я пробовал решения на разных постах SO, но ни одна из них не работает должным образом.
У меня есть модал с iframe, который воспроизводит видео, и это, кажется, работает, но я пытался полностью остановить видео, когда закрываю модал, но он все еще пытается воспроизвести.
Элемент iframe
<iframe class="modal-iframe" type="text/html" width="640" height="360" src="https://www.youtube.com/embed/VIDEO?&controls=0&rel=0&showinfo=0&playlist=VIDEO&loop=1&autoplay=1" frameborder="0"></iframe>
Открытие / Закрытие событий
$(".custom-modal").on("hidden.bs.modal", function (e) {
var iframe = $('#' + e.target.id).find("iframe");
if (iframe.attr("src") && iframe.attr('src').indexOf('autoplay') != -1) {
var newURL = iframe.attr('src').substring(0, iframe.attr('src').length - 11);
iframe.attr('src', newURL);
}
})
$('.custom-modal').on('show.bs.modal', function (e) {
var iframe = $('#' + e.target.id).find("iframe");
if (iframe) {
var videoSrc = iframe.attr("src");
iframe.attr("src", videoSrc+"&autoplay=1");
}
});
Это, кажется, работает в некоторой степени, и тег autoplay
добавляется / удаляется правильно, однако по какой-то причине, когда модальный режим закрыт, видео все еще, кажется, пытается воспроизвести снова, когда я получаю ошибки в консоли (это на самом деле не удается воспроизвести, но я вижу, что это проблема, когда у меня есть несколько видео в разных модах)
Таким образом, тег autoplay удаляется, когда модальное окно закрывается, но этот поток все еще существует для видео.
Как я могу полностью остановить видео, чтобы оно не отправляло больше запросов при закрытии модала?
Так что я думаю, что нашел проблему. Iframe загружается на главную страницу при открытии модального окна и всегда присутствует в фоновом режиме. Я попытался удалить iframe через remove()
, и это работает и останавливает ошибки, но тогда iframe не загружается второй раз, когда модальное окно открывается повторно.
Мне нужно решение, чтобы выгрузить iframe, но все же разрешить его перезагрузку при открытии модального окна.