2016-03-14 6 views
21

У меня есть код, который я использую для отображения видео в iframe. 99% времени, если работает, когда пользователь хочет переключиться на полноэкранный режим, в любом браузере.Разрешение iframe стать полноэкранным, кросс-браузерным

Однако мы нашли несколько примеров в IE, где полноэкранный вариант расширяется только в соответствии с размером iframe.

Функция Iframe тег визуализируется следующим образом:

<iframe id="FrameContent" allowtransparency="true" frameborder="0" title="" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen="true" src="/whatever.aspx" style="width: 1660px; height: 867px; visibility: visible;"></iframe> 

Все родитель/ребенок плавающие фреймы имеют вышеуказанные allowfullscreen атрибуты.

Однако, прочитав здесь и в других местах, кажется, что консенсусом является использование только allowfullscreen, с указанным ="true". Некоторые приведенный выше код будет изменен, чтобы сделать следующим образом -

<iframe id="FrameContent" allowtransparency="true" frameborder="0" title="" allowfullscreen src="/whatever.aspx" style="width: 1660px; height: 867px; visibility: visible;"></iframe> 

Кроме того, другие (webkitallowfullscreen & mozallowfullscreen), кажется, не устарели, так больше не нужны, это правильно?

Я видел другие предложения, такие как использование allowfullscreen="allowfullscreen" или allowfullscreen="" (потому что ="true" не работает!)

Я также видел msallowfullscreen и oallowfullscreen упоминалось, и мы в настоящее время не использовать их.

Любой, кто может уточнить, что следует использовать раз и навсегда?

+4

В каких версиях IE это происходит? Если они более старые версии, было бы проще не поддерживать эти версии? –

+0

@Ian Kemp В настоящее время он разрывается в IE11, только изменяя размер в размере iframe, а не в полноэкранном режиме. Не удалось воспроизвести в Chrome или Firefox (последние версии обоих). –

+1

В IE поддерживается как «allowfullscreen» https://msdn.microsoft.com/en-us/library/dn312070%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396. Обратите внимание, что вам нужно позвонить ему с надлежащим вызовом JavaScript, https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen – TylerH

ответ

3

Вот некоторые ссылки, которые могут вам пригодиться. Чтобы «уточнить, что следует использовать раз и навсегда», см. Ссылку W3.org.

  1. Официальный спецификации для того, что браузер производители должны построить в IFrame тег находится на сайте W3C: https://www.w3.org/TR/html5/embedded-content-0.html#the-iframe-element
  2. Поскольку W3C страница рода трудно читать, здесь легко читаемый список свойства Iframe: http://www.w3schools.com/tags/tag_iframe.asp
  3. Вот что работает в каждом браузере: http://caniuse.com/#search=iframe

Похоже, производители браузеров добавление заменимых W3C-совместимые атрибуты снова в некоторых из их тегов. Атрибут «allowFullScreen» действительно принадлежит в теге param, но не в самих iframe, а также в самих тегах видео.

<object type="application/x-shockwave-flash"> 
    <param name=allowfullscreen value=true> 
    <video>...</video> 
</object> 

Вы можете быть не повезло с IE, как это звучит, как производители браузеров создание хаков ... вместо того, чтобы придерживаться официальной спецификации W3C. Любые другие атрибуты необязательны. & может быть устаревшим в любое время.

Если вы хотите показать видео, попробуйте создать его на странице без тега iframe. Большинство респектабельных компаний, обслуживающих видео, не будут создавать браузерные видеоролики. Это реклама, которая может вызвать проблемы с перекрывающимся контентом на вашей странице. Я предполагаю, что это проблема, которую вы пытаетесь предотвратить с помощью тега iframe?

+3

Вместо ссылки w3schools (), я бы предложил использовать https://devdocs.io/html/element/iframe – hjpotter92

+1

О, это красивый сайт! Я раньше не видел devdocs.io, но он устраняет все объявления, которые распространяются на сайте w3schools. Мне нужно будет пометить этот сайт. :) – Clomp