Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> GreyBox i <body onload="load()"..> dla google maps
cytrysek
post 26.02.2008, 17:08:38
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.01.2008

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


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
Go to the top of the page
+Quote Post
Cezar708
post 26.02.2008, 17:25:42
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


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?
Go to the top of the page
+Quote Post
cytrysek
post 26.02.2008, 21:45:40
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.01.2008

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


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
Go to the top of the page
+Quote Post
arecki
post 26.02.2008, 23:11:10
Post #4





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

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


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. }


Ten post edytował arecki 26.02.2008, 23:11:29


--------------------
Go to the top of the page
+Quote Post
nevt
post 27.02.2008, 08:36:27
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


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();">


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
cytrysek
post 27.02.2008, 11:10:43
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.01.2008

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


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.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 00:50