Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: GreyBox i <body onload="load()"..> dla google maps
Forum PHP.pl > Forum > Przedszkole
cytrysek
Witam,

czy ktoś wie jak pogodzić ze sobą te dwie rzeczy.

Mam na stronie linki zrobione w GREYBOX'ie (otwiera się nowe okienko), oprócz tego chce na tej samej stronie pokazać małą mapke google maps.

I problem pojawia się wówczas, kiedy umieszczam ten kod:
  1. <body onload="load()" onunload="GUnload()">

czyli coś, bez czego nie zobaczę mapki, ale wówczas nie działa mi greybox.

Dzięki za pomoc
PW
Cezar708
szczerze mówiąc nie do końca rozumiem...

przecież onunload to:
Cytat
The onunload event occurs when a user exits a page

... czyli przy opuszczaniu strony

a

zdarzenie onload to:
Cytat
The onload event occurs immediately after a page or an image is loaded.

.. czyli po załadowaniu strony

te dwa zdarzenia nie są ze sobą w żaden sposób (w szerszym sensie) skorelowane, więc w czym problem?
cytrysek
Wyjaśnię zatem może bardziej zrozumiale:

te 2 zdarzenia są jak słusznie zauważyłeś od siebie niezależne.
Mnie najbardziej interesuje onload, które ładuje od razu po wczytaniu funkcję load() z google maps.

Niestety ta funkcja gryzie się z czymś mi bliżej nieokreślonym w greybox (http://www.orangoo.com/labs/GreyBox/)

Rozwiązałem to zatem na ten czas w ten sposób, że funkcję load() ładuję dopiero po kliknięciu (zdarzenie onclick).

niestety musiałem ukryć zatem mapkę i dopiero po kliknieciu na link pojawia sie ona na stronie
(ukryty div: slideToggle w jquery)

Reasumując wyrzuciłem z <body> zdarzenie onload i jest git, ale jak zrobić, by załadować load() bez klikania i nie wstawiając go w body ?

thx.
PW
arecki
Bardziej dział Javascript no ale cóż. Chodzi generalnie o to że te wszystkie bajery jak GrayBox, LightBox czy innyBox działają na takie zasadzie że w momencie wczytywania pliku JS on uruchamia funkcję "obserwującą" załadowanie się strony a konkretniej to obiektu window. Dlatego jak dodałeś nowy element do tagu <body> to nadpisałeś te ustawienia, które wczytują się poprzez GreyBox'a. Rozwiązanie jest proste. Dopisz poniższy fragment kodu PO wczytywaniu greybox'a ale TUŻ PRZED <body> i powinno pomóc.

  1. <script type="text/javascript">
  2. if (window.onload) {
  3. var func = window.onload;
  4. window.onload = function() {
  5. load();
  6. func();
  7. }
  8. }
nevt
możesz po prostu funkcję inicjującą googlemaps wywołać po załadowaniu strony wprost. wklej do kodu:
  1. <script type="text/javascript">
  2. load();

na samym końcu kodu swojej stronki (między znaczniki </body> i </html>) - skutek będzie taki sam jak dla <body onload="load();">
cytrysek
Cytat(nevt @ 27.02.2008, 08:36:27 ) *
możesz po prostu funkcję inicjującą googlemaps wywołać po załadowaniu strony wprost. wklej do kodu:
  1. <script type="text/javascript">
  2. load();

na samym końcu kodu swojej stronki (między znaczniki </body> i </html>) - skutek będzie taki sam jak dla <body onload="load();">



I tak też uczyniłem.
Dzięki,
Temat zamknięty.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.