Удалите одну из двух кнопок воспроизведения на Google Drive. - PullRequest
0 голосов
/ 06 октября 2018

Кто-нибудь может мне помочь в этом, когда я встраиваю видео с диска Google с помощью iframe, на котором есть две кнопки воспроизведения, как удалить одно из этого?Это происходит только в Chrome и Safari , поэтому, пожалуйста, протестируйте его в этих браузерах.

<iframe src="https://drive.google.com/file/d/1mNaIx2U3m7zL9FW-wksaI1m_rL5Oh47v/preview" width="400" height="300" allowfullscreen="true"></iframe>

.дважды нажмите кнопку.

Также я не могу использовать проигрыватель html5, так как большинство видео большие.

вот моя скрипка https://jsfiddle.net/1tav74q8/

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

TL; DR;невозможно напрямую изменить содержимое внутри iframe, принадлежащего другому источнику, которым вы не владеете.


Если ваш iframe и хост имеют одинаковое происхождение (домен), взаимодействие между ними легкопросто получите доступ к объекту document, чтобы получить элемент.Пример использования jQuery:

  • Чтобы скрыть кнопку на элементе хоста из iframe, используйте:window.parent.jQuery('button').hide().
  • Чтобы скрыть кнопку элемента iframe от хоста, используйте:jQuery('iframe')[0].contentWindow.jQuery('button').hide()

HOWEVER , если хост и фрейм не имеют одинакового происхождения, взаимодействие между каждым из них строго ограничено.Вы не можете указать определенную операцию непосредственно с хоста на javascript iframe window или document, и наоборот.Исходя из этого, можно с уверенностью сказать, что прямой доступ к элементу DOM iframe с хоста определенно невозможен.

Объяснение о Доступ к API-интерфейсу сценария общего происхождения из MDN .

API-интерфейсы JavaScript, такие как iframe.contentWindow, window.parent, window.open и window.opener, позволяют документам напрямую ссылаться друг на друга.Когда два документа не имеют одинакового происхождения, эти ссылки предоставляют очень ограниченный доступ к объектам Window и Location, как описано в следующих двух разделах.

Для дальнейшей связи между документами из разных источников, используйте window.postMessage.

Вы можете использовать функцию window.postMessage и прослушиватель событий "message" для отправки и получения сообщения между хостом и iframe (и наоборот).В вашем случае вам нужно будет отправить сообщение с хоста, чтобы поручить фрейму скрыть кнопку.Затем на стороне получателя (iframe) найдите нужную кнопку, затем скройте ее. Но этот метод работает, только если вы владеете этими двумя источниками , вам нужно объявить событие "message" в конце iframe, и так как ваш источник iframe - drive.google.com, который, я полагаю, вы не являетесь владельцем,тогда это определенно невозможно.

Больше объяснений: https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

0 голосов
/ 13 октября 2018

Насколько мне известно, вы не можете редактировать содержимое iframe, которое не создается на вашем собственном сервере.Но я не уверен ..

Проверьте это сообщение для образца

Courseweb

Stackoverflow

Также интересно по этой ссылке:

stackoverflow

  1. Получить уникальный идентификатор видео (0B6VvIWR7judDX25yUGxVNERWUj)
  2. Вставить в этот HTML:

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