Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: blokowanie funkcji podczas ładowania strony
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
zuraw84
witam,
jak mozna zablokowac wywolywanie funkcji podczas ladowania strony ?

dokładniej:
mam duży skrypt w javascripcie, na stronie jest przycisk który wywołuje ten skrypt,
jak ładuje się strona i pojawia się przycisk i go klikniemy zaraz po pojawieniu się
to wyskakuje błąd javy (nieznana funkcja)
i tu pytanie jak to można zablokować by przycisk wywoływał funkcje dopiero gdy ta się cała załaduje
lub gdzie umieścić ten skrypt by to on się najpierw załadował a dopiero potem elementy strony

edit: użyłem określenia 'java' co mogło wprowadzić w błąd, chodziło mi o javascript
gekon
Onload?
zuraw84
oki ale albo nie wiem jak tego uzyc albo to nie dziala
bo robilem tak:

ze na poczatku jak naj wyzej ustawialem (probowalem tez zaraz po deklaracji body)
  1. var flaga=0;

w body (ktore wykonuje sie po zaladowaniu strony)
  1. <body onload="flaga=1;">

a przy przycisku
  1. if(flaga == 1)
  2. {
  3. ......wywolanie funkcji
  4. }

przy takim ustawieniu jak klikam podczas ladowania to .... błąd nie wyskakuje smile.gif ale strona przestaje się ładować co jest raczej niedopuszczalne
Zajec
Nie myl proszę Javy z JavaScript.
zuraw84
oki, przepraszam to z rozpędu, myślałem że jeśli piszę w dziale javascript to moge użyć skrutu, juz poprawiam
gekon
Jeżeli możesz to pokaż kod.
zuraw84
oki, skroce go troche, zachowujac sens

  1. <script type="text/javascript">
  2. var flaga = 0; //tu jak naj szybciej ma byc utworzona zmienna flaga
  3.  
  4. function moja()
  5. {
  6. if(flaga == 1)//jesli flaga == 1 to dopiero mozna wywolac kod
  7. {
  8. tutej jakis dluuuugi kod...
  9. }
  10. }
  11.  
  12. </script>
  13. </head>
  14. <body onload='flaga = 1;'> <!-- przypisanie wykona sie po zaladowaniu strony -->
  15. <input onclick="moja()">
  16. </body>


oki, i teraz tak, jak zrobie tak i podczas ladowania strony klikam na przycisk to strona przestaje sie dalej ladowac, ten dlugi kod oczywiscie nie wykonuje sie,
a jak zrobie bez tych "patentow" to jak podczas ladowania sie strony klikne na przycisk, to wyskoczy blad
gekon
Sprawdz to:
  1. <script type="text/javascript">
  2. var flaga = 0; //tu jak naj szybciej ma byc utworzona zmienna flaga
  3.  
  4. function moja(){
  5. if(flaga == 1)//jesli flaga == 1 to dopiero mozna wywolac kod
  6. {
  7. alert('dziala');
  8. }
  9. }
  10. window.onload = function(){
  11. flaga = 1;
  12. }
  13. </head>
  14. <body> <!-- przypisanie wykona sie po zaladowaniu strony -->
  15. <input type="button" onclick="moja()">
  16. </body>
zuraw84
pod IE sie zatrzymuje
a pod FF dziala dobrze
revyag
A może zamiast kombinować, po prostu ukryj przycisk na czas ładowania ? A kiedy strona się załaduje pokaż go.
zuraw84
no .... hmmm. ... to jest takie dosc dziwne rozwiazanie
jak komus sie strona bedzie dlugo ladowac to co nie bedzie mial menu,
ew. mozna to nawet zaslonic jakims ruchomym gifem na czas ladowania ale .....

a czy nie ma sposobu by najpierw ladowal sie skrypt a potem dopiero grafika ?
tiraeth
Złe nazwy obrazków a potem daj w onload funkcję, która przeleci wszystkie tagi img lub inputy z type=image i pozamieniaj na poprawne nazwy smile.gif
gekon
U mnie w IE działa.
zuraw84
Cytat(revyag @ 17.08.2006, 14:25 ) *
A może zamiast kombinować, po prostu ukryj przycisk na czas ładowania ? A kiedy strona się załaduje pokaż go.


tak po glebszym przemysleniu, ten pomysl mial by racje bytu ;]
menu na tej stronie wyglada bardzo prosto wiec zrobie print scr. i na czas ladowania zaslonie te menu
a jak sie zaladuje to usune ta warstwe, nawet nie bedzie zadnej roznicy, nikt sie nawet nie zorientuje ;]

dzieki za pomoc
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.