Я хочу создать javascript, чтобы изменить скорость воспроизведения видео, встроенного в iframe на загруженном веб-сайте. Тег <video>
находится в iframe, и я хотел бы установить на него playbackRate
.
Я пытался использовать document.getElementsByTagName('iframe')[0].contentDocument.querySelector('video')
, чтобы получить элемент видео, но contentDocument
был нулевым и заблокирован из-за разрешений на межсайтовый источник.
Однако существует популярное расширение Chrome, которое называется «Video Speed Controller», и когда я использую это расширение, оно успешно устанавливает частоту воспроизведения видео в кадре iframe. Как это расширение chrome (с открытым исходным кодом: https://github.com/igrigorik/videospeed) может устанавливать скорость воспроизведения видео в iframe?
Я прочитал их код, и они используют одну и ту же стратегию: ищут фреймы и теги видео и используют contentDocument для найденных тэгов iframe. Они также перебирают все узлы DOM всякий раз, когда происходит мутация документа (в основном скрипте: https://github.com/igrigorik/videospeed/blob/master/inject.js). Позволит ли это им получить доступ к видео узлам?
РЕДАКТИРОВАТЬ: расширение подтверждает политики межсайтового происхождения и, похоже, не использует обновленные разрешения. См. Комментарий ниже.
спасибо!