Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> iFrame - onload, przy zmianie zawartości przez contentWindow, Jak to zrobić?
adbacz
post
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Czy da się podpiąć zdarzenie pod ramkę, której będę zmieniał tylko treść poprzez poniższy kod, nie zmieniając jej SRC?
[JAVASCRIPT] pobierz, plaintext
  1. iFrame.contentWindow.document.querySelector('body').innerHTML = 'code...';
[JAVASCRIPT] pobierz, plaintext

Niestety, podpięcie onload działa tylko za załadowaniem ramki w dokumencie, i działa gdy zmieniam SRC, jednak nie działa gdy zmieniam treść wewnątrz. Czy da się to jakoś sprawdzić, czy treść wrzucona w ramkę załadowała się?

Wiem, że mogę zmieniać src, już tak robiłem, jednak działało to za wolno. Miałem dwa requesty, zamiast jednego, które praktycznie wykonywały się tak samo długo, tylko, że jeden za drugim. A w tym pierwszym mogę od razu dostać kod ramki, więc chciałbym to wykorzystać tak, jak opisałem wyżej.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adbacz
post
Post #2





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Już tak próbowałem, niestety to też nie działa. Load działa tylko gdy strona się załaduje (nawet w ramce) ale podczas zmiany, nawet całego body, żaden podobny event się nie wykonuje.

SOLVED!!!

Pobieramy obiekt document, z contentWindow danego iFrame, następnie otwieramy stream (open()), ładujemy nową treść (writeln() lub zwykłe write()) i zamykamy stream (close()) po czym treść ramki się przeładowywuje, a po wszystkim zostaje wywołany event onload, za każdym razem gdy zmienimy treść ramki w ten sposób.

Dla potomności kod:

[JAVASCRIPT] pobierz, plaintext
  1. var doc = iFrame.contentWindow.document;
  2. doc.open();
  3. doc.writeln('<!doctype html>' + '<html><head>' + '<title>' + title + '</title>' + '</head><body>' + contentToChange + '</body></html>');
  4. doc.close();
[JAVASCRIPT] pobierz, plaintext


-----------------------
@Moderator - Proszę dodać w tytule [ROZWIĄZANY] tematu dla innych.

Ten post edytował adbacz 12.10.2015, 14:18:14
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 05:30