2016-03-14 17 views
21

Ho un codice che uso per visualizzare un video all'interno di un iframe. 99% delle volte se funziona quando l'utente vuole passare a schermo intero, in qualsiasi browser.Consentire a un iframe di diventare a schermo intero, cross-browser

Tuttavia, abbiamo trovato un paio di esempi in IE in cui l'opzione a schermo intero si espande solo per adattarsi alle dimensioni dell'iframe.

Il tag iframe è reso come segue: 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> 

Tutti i genitore/figlio hanno i suddetti allowfullscreen attributi.

Tuttavia, leggendo qui e altrove, sembra che il consenso sia quello di utilizzare solo allowfullscreen, con ="true" specificato. Alcuni il codice di cui sopra sarebbe cambiato per rendere la seguente -

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

Inoltre, gli altri (webkitallowfullscreen & mozallowfullscreen) sembrano essere stati deprecati in modo non sono più necessari, è corretto?

ho visto altri suggerimenti, come l'utilizzo allowfullscreen="allowfullscreen" o allowfullscreen="" (perché ="true" non funziona!)

Ho visto anche msallowfullscreen e oallowfullscreen già detto, e al momento non uso quelli.

Chiunque è in grado di chiarire cosa deve essere usato una volta per tutte?

+4

Quali versioni di IE fanno questa interruzione? Se sono versioni precedenti, non sarebbe più semplice non supportare quelle versioni? –

+0

@Ian Kemp Si interrompe attualmente in IE11, ridimensionando solo le dimensioni iframe e non a schermo intero. Non sono stato in grado di riprodurre in Chrome o Firefox (ultime versioni di entrambi). –

+1

In IE è supportato come solo 'allowfullscreen' https://msdn.microsoft.com/en-us/library/dn312070%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396. Si noti che è necessario chiamarlo con la corretta chiamata JavaScript, https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen – TylerH

risposta

3

Ecco alcuni collegamenti che potrebbero risultare utili. Al fine di "chiarire cosa dovrebbe essere usato una volta per tutte", vedi il link W3.org.

  1. La specifica ufficiale per quale browser produttori devono costruire nel tag iframe si trova sul sito del W3C: https://www.w3.org/TR/html5/embedded-content-0.html#the-iframe-element
  2. Poiché la pagina W3C è un po 'difficile da leggere, ecco un elenco di facile lettura dei proprietà iframe: http://www.w3schools.com/tags/tag_iframe.asp
  3. Ecco ciò che funziona in ogni browser: http://caniuse.com/#search=iframe

suona come produttori di browser stanno aggiungendo gli attributi non W3C-compliant di nuovo in alcune delle loro etichette. L'attributo "allowFullScreen" appartiene davvero a un tag param, ma non all'iframe né ai tag video stessi.

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

Si può essere fuori di fortuna con IE, come sembra come i produttori di browser stanno creando hack ... invece di attenersi alle specifiche ufficiali del W3C. Qualsiasi altro attributo è opzionale & può essere ritirato in qualsiasi momento.

Se si desidera mostrare il video, provare a costruirlo sulla pagina senza il tag iframe. Le società di video hosting più rispettabili non creeranno video che spezzano il browser. Sono gli annunci che possono causare problemi con contenuti sovrapposti sulla tua pagina. Suppongo che questo sia il problema che stai cercando di prevenire con il tag iframe?

+3

Invece del link w3schools (), suggerirei di usare https://devdocs.io/html/element/iframe – hjpotter92

+1

Oh, questo è un bel sito! Non ho mai visto devdocs.io prima, ma elimina tutti gli annunci, che sono pervasivi sul sito w3schools. Dovrò segnalibro quel sito. :) – Clomp

Problemi correlati