Bilderverzeichnis vorausladen mit for Schleife (Javascript)

  • Hi ich möchte Bilder aus einem Verzeichnis vorausladen und habe dazu folgendes versucht.

    function laden(){

    for (i=1; i<20; i++) {
    x=i;
    i = new Image();
    i.src = "bilder/cg"+x+".gif";
    }
    }

    Die bilder heißen z.b. cg1.gif cg2.gif usw.
    Nun möchte ich, dass er i als variable nimmt und das ich nicht für jedes bild, alles neu erstellen muß, d.h.

    im ersten schleifendurchlauf, macht er:

    1=new Image();
    1.src="..."

    im zweiten

    2=new Image();
    2.src="..."

    usw.

    aber das klappt nicht, woran liegt es? kann eine zahl keine variable sein?
    könnte ich dann einen string mit dem i verknüpfen und dadurch ne variable erstellen lassen? also wie zum beispiel var test+i = new Image()

    bin für tipps sehr dankbar

  • habe es so gelöst:


    function laden2()
    {
    preImages = new Array(20);

    for (i = 0; i < 20; i++) {
    preImages[i] = new Image();
    preImages[i].src = "bilder/cg"+i+".gif";
    }
    }

    und das funktioniert auch, habe jetzt aber ein anderes problem
    ich lasse per javascript html code erzeugen, welcher bilder enthält
    wie kann ich nun auch diese vorausladen?
    mit document.images kann ich diese nicht ansprechen, da der code ja erst während der nutzung erzeugt wird

  • schau dir mal den thread an: https://www.forum-hilfe.de/viewtopic.php?t=36221

    dort kommt im unteren teil dann die möglichkeit via js html-code zu erzeugen
    (document.getElementById....)

  • wie ich html per js erzeuge, das habe ich schon
    aber die document.images.length fkt. zählt bei mir die bilder nicht, welche sich im javascript befinden
    weißt du was ich meine?

    ich habe ne html datei, in welcher ich per javascript funktion html code erzeugen lasse, welcher bilder enthält, das geht auch prima
    aber wie kann ich jetzt von der html datei außerhalb die bilder im html code zählen lassen welcher erst erzeugt wird?

  • kann ja auch net.. die bilder werden erst durch das javascript in die seite eingefügt... ergo kann document.images.length(); erst aufegrufen werden, wenn die komplette seite geladen ist!
    mach nen button ans ender der page ...
    <button onclick="alert(document.images.length)">anzahl der bilder</button>

    ps um die schleife kann ich mich erst später kümmern!

  • ähm... gibt doch den schönen befehl <body onload...>...

    wird der ausgeführt wenn die seite vollständig geladen wurde
    oder wenn se gerade geladen wird ?

  • ja aber dann kommt der alert direkt.. so nur on demand...


    ach jo die schleife.. habs grad mal dazwischengeschoben.. bin grad in nem projekt..!

    Code
    function laden(){
    var i = 1;
    var bilder = new Array();
    for (i; i<20; i++) {
    biler[i]= new Image();
    bilder[i].src = "bilder/cg" + i + ".gif";
    
    
    }
    }

    probiere es mal so...
    dein ansatz war schon die richtige richtung!
    wenn du noch fragen hast einfach posten!

  • du musst ja kein allert machen. kannst ja auch mit nem document.write
    verknüpfen. je nachdem wozu er halt die information benötigt...

  • stimmt^^ aber ich bin halt gewohnt alerts zu machen, die mir dann alles anzeigen... denn so wird das layout der site net verändert....

    eine zusätzliche zeile kann schon wieder alles schrotten...

  • Es könnte beim Onload auch ein paar Probleme geben, wenn die Inhalte erst danach dynamisch erzeugt werden, oder irre ich mich jetzt?

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • dürfte eigentlich nicht, da die onload-funktion erst ausgeführt wird, wenn die komplette seite geladen wurde... nur bei onunload wird die funktion ausgeführt, bevor die seite "geschlossen" wird

  • der html code mit den enthaltenen images wird erst erzeugt, wenn ich auf ein wort klicke, d.h. ich klicke auf einen link und dann wird die box mit den bildern erzeugt, ein onload bringt daher nix, da wie gesagt dieser teil erst durchs klicken erzeugt wird, wie kann ich da nun alle bilder einlesen ohne dass diese bild1 bild2 usw. heißen, dann ginge es ja mit meiner schleife, da die bilder aber alle aussagefähige namen brauchen geht dies nicht