Fórum Root.cz
Ostatní => Odkladiště => Téma založeno: Hamparle 13. 10. 2020, 18:13:06
-
Když si otevřu iframe https://player.vimeo.com/video/číslo, tak se mi ukáže "Sorry
Because of its privacy settings, this video cannot be played here."
Na stránce, kde je iframe vloženo (ve zdrojáku html rovnou<iframe class="avideo-iframe vimeo" id="player" data-video="123123" src="https://player.vimeo.com/video/123123" width="800px" height="480px" allowfullscreen allow=autoplay></iframe>
se přehraje v pořádku? (Zkusil jsem naivně data:text/html,{obsah řádku výše} se stejnou hláškou)
Jakým způsobem nasimulovat, aby iframe fungoval korektně, rovnou přímo při otevření samotného iframe? Jaká api využívá (něco jako window.top, document.frames)?
Existuje nějaký bookmarklet, který "připraví" prostředí pro iframe tak, aby tyto ochrany byly neutralizovány?
-
tohle se řídí hlavičkou X-Frame-Options, mrkni třeba na https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
-
Předpokládám, že mám hledat x-frame-option u toho iframu. tam jsem tento tak nenašel
I kdyby to tak bylo, jaktože dojde k zobrazení textu a né nějaké chyby v konzoli? Když je to dle mdn. featura prohlížeče?
-
Pokud to vlastník iframu (videa) nepovolí, tak prostě iframe nevložíš... Tečka.
-
Předpokládám, že mám hledat x-frame-option u toho iframu. tam jsem tento tak nenašel
I kdyby to tak bylo, jaktože dojde k zobrazení textu a né nějaké chyby v konzoli? Když je to dle mdn. featura prohlížeče?
Taky ho tam nemá, ale mají CSP, Ale tam frame=ancestor není nastavený.
Tipnul bych si (ale nedovedu to zreplikovat, mě to embednout iframe dovoluje i přímo přehrát) že je to zablokované podle Referera na serveru.
-
JS:
let i_am_in_iframe = window.self !== window.top;
Tohle funguje (i když na některých horších prohlížečích bude potřeba ošetřit nějakou tu výjimku). Pokud se subdoména rodiče a vkládané stránky liší (jako např. v tom vimeo příkladě), bude window.top == null (nějaké bezpečnostní důvody), ale nerovnost bude dál platit.