Невозможно воспроизвести видео YouTube, встроенное в iframe, созданное с помощью JS - PullRequest
2 голосов
/ 19 февраля 2020

Здравствуйте, когда я встраиваю видео на YouTube в iframe, который создан не с помощью тега HTML, а создан с помощью JavaScript (document.createElement ()), видео не воспроизводится, и отображается только сообщение об ошибке «Видео недоступно» показано.

Дополнительная информация:

  • Первый iframe не имеет атрибута sr c.
  • Документ iframe создается программно. Второй (встраивание видео) iframe является частью первого документа iframe.
  • Эта страница работает на локальном хосте.
  • Это происходит также в онлайн-приложениях, работающих на собственном домене.
  • Такое поведение наблюдается не для всех видео, я заметил, что в основном это происходит с видео * musi c.
  • Для всех видео включено встраивание, поэтому это не причина, по которой эти видео невозможно воспроизвести.

GIF показывает поведение здесь

index. html:

<html>
<div>
<iframe id="myFrame" style="width: 600px ; height: 350px" src="iframeVideo.html" frameborder="1"
allowfullscreen=""></iframe>
</div>
<div id="video"></div>

<script>
var container = document.getElementById("video");
var frame = document.createElement("iframe");
frame.style.width = "600px";
frame.style.height = "400px";

frame.onload = function () {
if (frame.contentDocument) {
var fdoc = frame.contentDocument;
var vframe = fdoc.createElement("iframe");

vframe.src = "https://www.youtube.com/embed/NEIwl93Yr8o";
vframe.setAttribute("frameborder", "0");
vframe.setAttribute("allowfullscreen", "");
vframe.style.width = "500px";
vframe.style.height = "281px";

fdoc.body.appendChild(vframe);
}
}
container.appendChild(frame);
</script>

</html>

iframeVideo. html:

<html>
<iframe id="myFrame" style="width: 500px ; height: 281px" src="https://www.youtube.com/embed/NEIwl93Yr8o" frameborder="0"
allowfullscreen=""></iframe>
</html>

1 Ответ

1 голос
/ 22 февраля 2020

Видео в вашем примере кода установлено как не подлежащее встраиванию тем, кто загрузил его на YouTube. Вы можете убедиться в этом, просмотрев видео на YouTube успешно (https://www.youtube.com/watch?v=NEIwl93Yr8o), но не перейдя прямо к https://www.youtube.com/embed/NEIwl93Yr8o (обратите внимание, что кнопка «play» при нажатии говорит « видео недоступно "). Вы можете сравнить это, например, с https://www.youtube.com/embed/Np1zODg5cqc, URL-адресом для встраивания, который можно успешно просмотреть, нажав кнопку воспроизведения.

Некоторые видео YouTube не могут быть встроены, и если у вас нет контроля над соответствующей учетной записью YouTube, вы ничего не можете с этим поделать (кроме как попросить владельца сделать ее встраиваемой).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...