<iframe> – ograniczenia i możliwości

Jednym z bardziej nietypowych tagów HTML – jest, przez niektórych bardzo nie lubiany i uznawany za przeżytek, a przez innych traktowany jako całkiem wygodne rozwiązanie – IFRAME, czyli ramka. Tag ten pozwala na zagnieżdżenie wewnątrz swojej strony dowolnej innej strony w internecie. Na co dzień jednym z najczęstszych zastosowań IFRAME jest umieszczanie Map Google lub filmów YouTube – to stosunkowo proste zadanie wykorzystujące gotowy kod do wklejenia na stronie.
Nie wszyscy jednak zdają sobie sprawę z możliwości jakie daje edycja zawartości zagnieżdżonej strony poprzez Javascript. I tak przy pomocy JQuery możemy odwołać się do dowolnego elementu wklejonej strony (np. $(‚idiframe’).contents.find(‚idelementu’).hide(); – ukrycie elementu). Te rozszerzone możliwości są jednak dostępne tylko dla stron znajdujących się w tej samej domenie, co strona w której umieszczony jest IFRAME. To ważne ograniczenie jest istotną ochroną przed tzw. phishingiem czyli podszywaniem się pod inną witrynę.
Częściowo da się jednak również i to zabezpieczenie obejść – jeżeli strona nie zawiera aktywnych skryptów JS – jedną z możliwości jest wygenerowanie w swojej domenie kopii strony przy użyciu PHP, a dokładniej funkcji file_get_contents. Przydatny okazuje się wtedy tag <base> umieszczony w sekcji head tak wytworzonego pliku, który poprawia wszystkie relatywne adresy URL do strony kopiowanej.
Iframe posiada jeszcze jedno istotne ograniczenie – umieszczony w witrynie z połączeniem szyfrowanym HTTPS nie zezwala na wklejenie kodu ze strony bez ważnego certyfikatu (tylko HTTPS), również ze względu na kwestie bezpieczeństwa.
Dla przykładu na mojej stronie sekcja Muzyka jest umieszczona przy pomocy <iframe>. Uwidacznia się tu jeszcze jedna zaleta tego rozwiązania, czyli możliwość przeładowania zawartości ramki bez przeładowywania całej strony, co sprawia wrażenie przypominające aplikacje AJAX.

maxresdefault


ZYGTECH.pl