![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 20.12.2003 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
jak nadać zdarzenie onload dla otwieranego okna z poziomu dokumentu otwierającego?
[xml:1:cda700e341] <script type="text/javascript"> var win = window.open('dokument.html'); win.window.onload = funkcja; </script> [/xml:1:cda700e341] Powyższe nie działa PS: zaznaczam, że zależy mi na wykonaniu tego z poziomu dokumentu tworzącego okno a nie z poziomu okna. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%) ![]() ![]() |
Podejście pierwsze:
Cytat Wydaje mi sie ze window.open zwraca instancje do obiektu nowego okna, a więc w zmiennej var jest obiekt typu window, w związku z tym powinieneś jego własciwość zmieniać w ten sposób:
... Nie. Atrybut window klasy Window wskazuje na siebie. A zatem Kod win.onload == win.window.onload == win.window.window.onload
Podejście drugie: Cytat Najlatwiej bedzie zrobic tak, ze zrobisz to bez pliku dokument.html - tzn.
... Nie. Po pierwsze, onload jest funkcją, a nie stringiem. Po drugie, nie wystarczy przypisać funkcję do body.onload, trzeba jeszcze dostarczyć definicję funkcji. A tej nowe okno nie ma, bo funkcja jest zdefiniowana w oknie głównym. Teraz, wracając do tematu... Cytat jak nadać zdarzenie onload dla otwieranego okna z poziomu dokumentu otwierającego?
To co podałeś nie działa nie dlatego, że kod jest niepoprawny, tylko dlatego, że najpierw tworzysz okno, a potem przypisujesz funkcję do onload. Funkcja się nie uruchomi, bo okno już jest utworzone i załadowane, zdarzenie load wykonało się linijkę wcześniej. I tego nie przeskoczysz. Proponuję Kod <script type="text/javascript">
var win = window.open('dokument.html'); win.onload = funkcja; win.onload(); </script> |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 12:04 |