MC, 00:22 wtorek, 24.07.2012 r.
Ilustracja do artykułu: jQuery - Dostęp do zawartości ramki (strony w iframe)

jQuery - Dostęp do zawartości ramki (strony w iframe)

Element stron internetowych IFrame jest dość specyficznym obiektem, zarówno ze względu na swoje działanie jak i wymagane podejście. W tym wpisie zanotuję sposób na uzyskanie dostępu do zawartości IFrame wykorzystując bibliotekę jQuery.

W czym problem?

Element IFrame, zwany powszechnie ramką, wczytuje do swego wnętrza i renderuje wskazaną stronę internetową. Dawniej stanowił on fundament jednego ze sposobów budowania całych serwisów, od którego odeszło się lata temu. Jeśli przyjdzie nam dostać się do zawartości takiej ramki z wykorzystaniem biblioteki jQuery, to może się okazać, że standardowe podejście oparte na zwykłym selektorze, może nie wystarczyć.

Co jeśli wczytujemy zewnętrzną stronę do ramki?

Na samym początku należy poruszyć temat wczytania do ramki strony z poza macierzystej domeny. Jeśli staramy się uzyskać dostęp do elementów zewnętrznej strony, to niestety, ale z pozycji JavaScript nie jest to możliwe. Przyczyny oczywiście dotyczą zagadnienia bezpieczeństwa i aby je zapewnić, dostęp do zawartości takiej ramki jest ograniczony.

A jeśli wczytujemy stronę w obrębie tej samej witryny?

Jeżeli jednak wczytujemy do ramki lokalną stronę, to możemy skorzystać z tego co oferuje jQuery, o ile tylko będziemy pamiętali o jednej rzeczy - aby dostać się do zawartości ramki przy pomocy funkcji contents(). Posłużę się prostym przykładem. Jeśli np. we wczytywanej do ramki (id="NaszaRamka") stronie znajduje się jakiś element o id="ElementDocelowy", to z pozycji strony nadrzędnej, możemy się do niego dostać w poniższy sposób:
$('#NaszaRamka').contents().find('#ElementDocelowy');

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: