jan: innerHTML Änderung, DOM

Hallo,

Ich habe eine kleine "Animation" geschrieben, die während eines Preloadingvorgangs anzeigen soll das gearbeitet wird. Also wird der String, der in innerHTML steht, imer einfach um einen Punkt erweitert.

Ich rufe die "Animation" mit setInterval als Objektvaraible auf, es funktioniert in Safari 2.0 aber nicht im IE7 oder im FF. Was könnte das Problem sein?

  
  
// Animation im Preload Div  
function preload_progress()  
{  
preload_text += '.';  
window.document.getElementById("theDiv").innerHTML=preload_text ;  
  
}  
  
function ImagePreloader(images, callback)  
  
{  
 // Hide the content until all is preloaded  
 document.getElementById("theDiv").style.display="inline";  
 //document.getElementById("page").style.display="none";  
   // store the call-back  
  
  
//Aufruf der "Animation"  window.document.getElementById("theDiv").progress=setInterval("preload_progress()", 500);  
   this.callback = callback;  
  
  
   // initialize internal state.  
   this.nLoaded = 0;  
   this.nProcessed = 0;  
   this.aImages = new Array;  
  
}  
  

Wieso funktioniert da so nicht?

  1. Ich rufe die "Animation" mit setInterval als Objektvaraible auf, es funktioniert in Safari 2.0 aber nicht im IE7 oder im FF. Was könnte das Problem sein?

    Wenn du keine Fehlermeldung erhälst, ist der Code i.O. und dein Problem liegt an etwas anderem.

    Struppi.

    1. Ich rufe die "Animation" mit setInterval als Objektvaraible auf, es funktioniert in Safari 2.0 aber nicht im IE7 oder im FF. Was könnte das Problem sein?

      Wenn du keine Fehlermeldung erhälst, ist der Code i.O. und dein Problem liegt an etwas anderem.

      Struppi.

      Hallo,

      Eine Fehlermeldung gab es im firebug oder in der Fehlerkonsole nicht.
      ich habe es jetzt gelöst, indem ich das Objekt "Progress nicht dem Div sondern dem Objekt "ImagePreloader" angehängt habe. Weiß aber nicht genau, wieso es jetzt funktioniert...

        
      function ImagePreloader(images, callback)  
        
      {  
        
       // Hide the content until all is preloaded  
       doc.getElementById("theDiv").style.display="inline";  
        
         // store the call-back  
         this.callback = callback;  
        
         //geaenderter Aufruf von preload_progress()  
         this.progress=setInterval("preload_progress()", 500);  
        
        
         // initialize internal state.  
         this.nLoaded = 0;  
         this.nProcessed = 0;  
         this.aImages = new Array();  
        
        
         // record the number of images.  
         this.nImages = images.length;  
        
        
         // for each image, call preload()  
         for ( var i = 0; i < images.length; i++ )  
            this.preload(images[i]);  
      }