login  Naam:   Wachtwoord: 
Registreer je!
 Forum

setInterval functie herhalen lukt niet

Offline brechtjah - 18/05/2008 16:23 (laatste wijziging 18/05/2008 16:53)
Avatar van brechtjahNieuw lid Ik heb dit preload scriptje maar voor de een of andere reden werkt dit niet... Ik wil dat hij om de 50 miliseconden checkt of de afbeelding geladen is of niet... Maar dit doet hij niet, hij stopt na 1 maal.
  1. <head>
  2. <title>preloader4.htm</title>
  3. </head>
  4.  
  5. <body>
  6. <div id="divImages" style="display: none;">
  7. <img name="circle" src="http://scifi.epfl.ch/webdata/google_logo.jpg">
  8. </div>
  9.  
  10. <script language="JavaScript">
  11. <!--
  12. function checkComplete() {
  13. if(document.circle.complete == true) {
  14. document.write("Image loaded.");
  15. divImages.style.display='inline';
  16. }
  17.  
  18. if(document.circle.complete == false) {
  19. document.write("Image not loaded.");
  20. }
  21. }
  22.  
  23. checkComplete();
  24. setInterval("checkComplete();", 50);
  25. -->
  26. </script>
  27. </html>


EDIT:
Ik heb hier en daar wat veranderd en dit werkt wel? Waarom?
  1. <head>
  2. <title>preloader4.htm</title>
  3. </head>
  4.  
  5. <body>
  6. <div id="divImages" style="display: none;">
  7. <img id="circle" src="http://scifi.epfl.ch/webdata/google_logo.jpg">
  8. </div>
  9.  
  10. <script language="JavaScript">
  11.  
  12. function checkComplete() {
  13. var objAfbeeldingske = document.getElementById('circle');
  14.  
  15. if(objAfbeeldingske.complete == true) {
  16. document.title = "Image loaded.";
  17. divImages.style.display='inline';
  18. }
  19.  
  20. if(objAfbeeldingske.complete == false) {
  21. document.title = "Image not loaded.";
  22. }
  23. }
  24.  
  25. checkComplete();
  26. setInterval("checkComplete();", 50);
  27. checkComplete();
  28. </script>
  29. </html>


EDIT2:
Hmm, dit is hetgeen wat ik nu heb... Dit werkt zoals ik het wil, maar ik begrijp toch niet waarom die met document.write niet ging... 
  1. <head>
  2. <title>preloader4.htm</title>
  3. </head>
  4.  
  5. <body>
  6. <div id="divImages" style="display: none;">
  7. <img id="circle" src="http://scifi.epfl.ch/webdata/google_logo.jpg">
  8. </div>
  9. <div id="divLoading">
  10. <img src="1280x1024_new/1280x1024/1280x1024/load.gif" />
  11. </div>
  12.  
  13. <script type="text/javascript">
  14.  
  15. function checkComplete() {
  16. var objAfbeeldingske = document.getElementById('circle');
  17.  
  18. if(objAfbeeldingske.complete == true) {
  19. divImages.style.display='inline';
  20. divLoading.style.display='none';
  21. }
  22.  
  23. if(objAfbeeldingske.complete == false) {
  24. divLoading.style.display='inline';
  25. }
  26. }
  27.  
  28. checkComplete();
  29. setInterval("checkComplete();", 50);
  30. </script>
  31. </html>

2 antwoorden

Gesponsorde links
Offline Stijn - 18/05/2008 19:58
Avatar van Stijn PHP expert
  1. setTimeout("functie();" , ms)
Offline timmie_loots - 19/05/2008 00:44
Avatar van timmie_loots PHP gevorderde Dat is een andere functie stijn1989, setInterval bestaat ook gewoon en dient een ander doel. Het wordt helaas zelden gebruikt, vaker kom je constructies tegen waarbij men een functie aanroept met setTimeout(), die vervolgens diezelfde setTimeout() weer zet.

Het probleem brechtjah wordt komt van de locatie van het script af. Hij staat op de verkeerde plek (namelijk in een niet afgesloten bodytag), en dat betekend dat de document.write() de complete inhoud van de body weggooit (ik weet niet precies wanneer dit gedrag zich voordoet, maar ik raad het gebruik van document.write() dan ook sowieso af). Het script verdwijnt ook en de setInterval roept hij nooit aan.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.291s