Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Wywołanie funkcji
Forum PHP.pl > Forum > Przedszkole
stefik4
Witam posiadam funkcje JS którą chaiał bym aby uruchamiała się wrac z załadowaniem strony. Próbowałem body onload ale nie działa ;/

Spróbowałem wpisać nazwę i też nic:

  1. <script type="text/javascript">
  2. var dialogWidth = 300;
  3. var dialogHeight = 200;
  4. var timeout = 10000;
  5. function showModal(dW, dH)
  6. {
  7. var dialogDiv = document.getElementById("dialogDiv");
  8. var transparentDiv = document.getElementById("transparentDiv");
  9.  
  10. if(!dialogDiv) return;
  11. if(!transparentDiv) return;
  12. if(!dW) var dW = dialogWidth;
  13. if(!dH) var dH = dialogHeight;
  14.  
  15. dialogDiv.style.width = dW + "px";
  16. dialogDiv.style.height = dH + "px";
  17.  
  18. var clientWidth = parseInt(document.documentElement.clientWidth);
  19. var clientHeight = parseInt(document.documentElement.clientHeight);
  20. var scrollHeight = parseInt(document.documentElement.scrollHeight);
  21. var scrollWidth = parseInt(document.documentElement.scrollWidth);
  22.  
  23. transparentDiv.style.width = Math.max(scrollWidth, clientWidth) + "px";
  24. transparentDiv.style.height = Math.max(scrollHeight, clientHeight) + "px";
  25.  
  26. var left = Math.floor((clientWidth - dW) / 2);
  27. var top = Math.floor((clientHeight - dH) / 2);
  28.  
  29. dialogDiv.style.top = top -400+ "px";
  30. dialogDiv.style.left = left + "px";
  31.  
  32. dialogDiv.style.display = "block";
  33. transparentDiv.style.display = "block";
  34. }
  35. function closeModal()
  36. {
  37. var dialogDiv = document.getElementById("dialogDiv");
  38. var transparentDiv = document.getElementById("transparentDiv");
  39.  
  40. if(!dialogDiv) return;
  41. if(!transparentDiv) return;
  42.  
  43. dialogDiv.style.display = "none";
  44. transparentDiv.style.display = "none";
  45. }
  46. showModal(500,280);
  47. </script>


A gdy w treści strony dodam odnośnik: <a href="#" onclick="showModal(550, 290);">.</a> to funkcja otworzy okno i jest okej.
Earth
window.onload
stefik4
Kod
      window.onload = showModal;


nie działa.
zegarek84
w kliku na linku przekazałeś parametry - w onload nie podałeś żadnych parametrów [wygląda to tak jakbyś uruchomił funkcję showModal()] - w sumie nie zawsze trzeba przekazywać [poza tym akurat tutaj inaczej musiałbyś je przekazać np. przez funkcję anonimową jeśli już byś nic rozsądniejszego nie mógł wymyślić] - można je wcześniej zdefiniować - ale musiałbyś rozumieć zasięg zmiennych w javascript - wielu twierdzi, że to dziwny język - ale jak się zrozumie podstawowe zasady zaskoczyć może prostotą, łatwością definiowania prywatnych zmiennych, hermetyzacją, zmiennymi chronionymi [zaraz napiszą, że nie ma czegoś takiego ^^ ;p]

podsumowując bezsensowny skrót myślowy:
window.onload = function(){showModal(550, 290);};

ale lepiej poczytaj o zasięgu zmiennych - a zanim zrozumiesz javascript zapamiętaj jedno - funkcje tutaj są obiektami także, ale z kolei obiekty nie są funkcjami - mogą mieć zestawy metod [funkcji] i innych parametrów ale to nie obiekty...
stefik4
  1. <script type="text/javascript">
  2.  
  3. var dialogWidth = 300;
  4. var dialogHeight = 200;
  5. var timeout = 10000;
  6. function showModal(dW, dH)
  7. {
  8. var dialogDiv = document.getElementById("dialogDiv");
  9. var transparentDiv = document.getElementById("transparentDiv");
  10.  
  11. if(!dialogDiv) return;
  12. if(!transparentDiv) return;
  13. if(!dW) var dW = dialogWidth;
  14. if(!dH) var dH = dialogHeight;
  15.  
  16. dialogDiv.style.width = dW + "px";
  17. dialogDiv.style.height = dH + "px";
  18.  
  19. var clientWidth = parseInt(document.documentElement.clientWidth);
  20. var clientHeight = parseInt(document.documentElement.clientHeight);
  21. var scrollHeight = parseInt(document.documentElement.scrollHeight);
  22. var scrollWidth = parseInt(document.documentElement.scrollWidth);
  23.  
  24. transparentDiv.style.width = Math.max(scrollWidth, clientWidth) + "px";
  25. transparentDiv.style.height = Math.max(scrollHeight, clientHeight) + "px";
  26.  
  27. var left = Math.floor((clientWidth - dW) / 2);
  28. var top = Math.floor((clientHeight - dH) / 2);
  29.  
  30. dialogDiv.style.top = top -400+ "px";
  31. dialogDiv.style.left = left + "px";
  32.  
  33. dialogDiv.style.display = "block";
  34. transparentDiv.style.display = "block";
  35. }
  36. function closeModal()
  37. {
  38. var dialogDiv = document.getElementById("dialogDiv");
  39. var transparentDiv = document.getElementById("transparentDiv");
  40.  
  41. if(!dialogDiv) return;
  42. if(!transparentDiv) return;
  43.  
  44. dialogDiv.style.display = "none";
  45. transparentDiv.style.display = "none";
  46. }
  47.  
  48. window.onload = function(){showModal(550, 290);};
  49. </script>


nie działa. Już wszystkie opcje probowałem i wciąz nic.
blade-mrn
to powinno być chyba tak:
window.onload = showModal(550, 290);
a nie tak:
window.onload = function(){showModal(550, 290);};
Po co to function przecież ty wywołujesz funkcję a nie definiujesz nową.
stefik4
blade_mrn, nie działa ;/
konrados
No a co mówi konsola blędów? Ctrl+Shift+J w firefoxie.
Jak coś nie działa w js, to tam zaglądamy i sprawdzamy co nie działa.
stefik4
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.