Я пытаюсь обернуть API-интерфейс YouTube внутри изолированного iframe и предоставляю ему только необходимые разрешения.
Я использую пакетact-frame-component для переноса компонента проигрывателя YouTube в изолированном iframe,Я отладил его до такой степени, что знаю, почему видео не показывается, но не могу понять, почему это происходит.
Когда доходит до того, что youtube-api заменяет оригинальный htmlЭлемент с iframe youtube, API-интерфейс youtube не может найти указанный элемент, потому что он находится внутри изолированного iframe.Код ниже является частью кода YouTube, который выбирается и выполняется.Я разместил комментарий, объясняющий, что я изменил, чтобы код youtube работал, но проблема в том, что API youtube не работает в контексте изолированного iframe.
function W(a, b, c) {
this.h = this.a = this.b = null;
this.g = this[r] || (this[r] = ++t);
this.c = 0;
this.A = !1;
this.s = [];
this.f = null;
this.l = c;
this.m = {};
c = document;
// Here, the document is not the document of the iframe, but the
// document of the entire page. I need this to be something like
// window.frames["myIframe"].contentDocument.getElementById(a)
if (a = l(a) ? c.getElementById(a) : a)
if (c = "iframe" == a.tagName.toLowerCase(),
b.host || (b.host = c ? Ba(a.src) : "https://www.youtube.com"),
this.b = new Wa(b),
c || (b = Ya(this, a),
this.h = a,
(c = a.parentNode) && c.replaceChild(b, a),
a = b),
this.a = a,
this.a.id || (a = b = this.a,
a = a[r] || (a[r] = ++t),
b.id = "widget" + a),
R[this.a.id] = this,
window.postMessage) {
this.f = new M;
Za(this);
b = V(this.b, "events");
for (var d in b)
b.hasOwnProperty(d) && this.addEventListener(d, b[d]);
for (var e in Sa)
$a(this, e)
}
}